2015-10-09 09:47:31 scimence 阅读数 1985
  • Android 5.x视频课程

    采用Android5.x进行讲解。本课程包含了几乎所有的Android开发技术,例如,Eclipse和Android Studio开发环境的搭建、各种控件的详细使用方法、布局、四大应用程序组件、数据存储、网络、对话框、Toast、通知、Intent、Android5.x新特性、Fragment、ActionBar、拖放技术、组件开发、硬件访问、定时器、Android NDK等技术。

    79750 人正在学习 去看看 李宁


/**
 * 2015-10-8上午11:13:09
 * wangzhongyuan
 */

package com.shjc.jsbc.view2d.dialog;

import android.app.Dialog;
import android.content.Context;
import android.view.View;

import com.CL.CrazyRacing.game.R;


/**
 * buySuccessDialog 购买成功提示,对话框, 调用buySuccessDialog.Instance(context).show()显示对话框
 * -----
 * 2015-10-8 上午11:13:09 
 * wangzhongyuan
 */
public class buySuccessDialog extends Dialog
{
	/**
	 * @param context
	 * @param theme
	 */
	public buySuccessDialog(Context context)
	{
		super(context, R.style.popup);
		setCanceledOnTouchOutside(false);
		setCancelable(false);
	}
	
	public static Dialog Instance(Context context)
	{
		// 创建对话框
		final Dialog dialog = new buySuccessDialog(context);
		
		// 设置对话框自定显示内容
		 dialog.setContentView(R.layout.dialog_lt_buy_success); // 从布局文件创建
		
		// 添加点击退出逻辑
		View V = dialog.getWindow().getDecorView().findViewById(R.id.lt_buy_success);
		View.OnClickListener listener = new View.OnClickListener()
		{
			@Override
			public void onClick(View arg0)
			{
				dialog.dismiss();
			}
		};
		V.setOnClickListener(listener);
		
		return dialog;
	}
}


界面布局:res/layout/dialog_lt_buy_success.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lt_buy_success"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/buy_success" />

</RelativeLayout>
对话框弹出样式:res/values/styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- <style name="mydialog" parent="@android:style/Theme.NoTitleBar.Fullscreen"> -->
    <style name="mydialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowBackground">@color/dialogbg</item>

        <!-- 背景透明 -->
    </style>

    <style name="fullscreen_dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
 <!-- 半透明 -->
        <item name="android:windowBackground">@drawable/bg2px</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

    <style name="game" parent="@android:style/Theme.Dialog">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@drawable/dialog_touming</item>
        <item name="android:windowIsFloating">false</item>
    </style>

    <style name="popup" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@drawable/dialog_touming</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

    <style name="result" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <!-- 半透明 -->
        <item name="android:windowBackground">@drawable/bg2px</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

    <style name="loding" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowBackground">@drawable/lt_fengmian_5</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

    <style name="cooeethem" parent="@android:style/Theme.Translucent.NoTitleBar">
        <item name="android:windowBackground"> @android:color/transparent</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowAnimationStyle"> @android:style/Animation</item>
    </style>

</resources>






2016-05-06 21:05:50 Xs15073722800 阅读数 1129
  • Android 5.x视频课程

    采用Android5.x进行讲解。本课程包含了几乎所有的Android开发技术,例如,Eclipse和Android Studio开发环境的搭建、各种控件的详细使用方法、布局、四大应用程序组件、数据存储、网络、对话框、Toast、通知、Intent、Android5.x新特性、Fragment、ActionBar、拖放技术、组件开发、硬件访问、定时器、Android NDK等技术。

    79750 人正在学习 去看看 李宁
public void click1(View view){
        /**/对话框的创建器**
        AlertDialog.Builder builder = new Builder(this);
        builder.setTitle("我是对话框"); 
        builder.setMessage("对话框显示的内容");
        /////***********************************************************
        builder.setPositiveButton("dsad", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub

            }
        });

        builder.setPositiveButton("确定", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "确定被点击了", 0).show();
            }
        });

        builder.setNegativeButton("取消", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //什么都不写默认实现就是关闭掉对话框
            }
        });
        /////**************************************************************
        builder.setCancelable(false);       //对话框不可以取消掉,只能选择其中的选项
            builder.show();//builder.create().show();
    }
/**
 *** 单选对话框**
 * @param view
 */
public void click2(View view){
        //对话框的创建器
        AlertDialog.Builder builder = new Builder(this);
        builder.setTitle("请选择您的性别");
        final String[] items = {"男","女","未知"};
        builder.setSingleChoiceItems(items, 2, new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "您的性别:"+items[which], 0).show();
                dialog.dismiss();
            }
        });
        builder.show();                 //相当于builder。creat().show();
    }
/**
 * **多选对话框**
 * @param view
 */
public void click3(View view){
        //对话框的创建器
        AlertDialog.Builder builder = new Builder(this);
        builder.setTitle("请选择你最爱吃的水果");
        final String[] items={"苹果","梨","菠萝","香蕉","黄瓜"};
        final boolean[] result =new boolean[]{true,false,true,false,false};
        builder.setMultiChoiceItems(items, result, new OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Toast.makeText(getApplicationContext(), items[which]+isChecked, 0).show();
                result[which] = isChecked;
            }
        });

        builder.setPositiveButton("提交", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                StringBuffer sb = new StringBuffer();
                for(int i=0;i<result.length;i++){
                    if(result[i]){
                        sb.append(items[i]+",");
                    }
                }
                Toast.makeText(getApplicationContext(), "您选中了,"+sb.toString(), 0).show();
            }
        });
        //builder.create().show();

        builder.show();                 //相当于builder。creat().show();
    }
**//进度条对话框**

    public void click4(View view){
        ProgressDialog pd = new ProgressDialog(this);
        pd.setTitle("提醒");
        pd.setMessage("正在加载数据...请稍等。");
        pd.show();
    }

**//带进度的进度条对话框**
public void click5(View view){
        final ProgressDialog pd = new ProgressDialog(this);
        pd.setTitle("提醒");
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        pd.setMax(100);
        pd.setMessage("正在加载数据...请稍等。");
        pd.show();

        new Thread(){
            public void run() {
                for(int i = 0;i<100;i++){
                    try {
                        Thread.sleep(40);

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    pd.setProgress(i);
                }
                pd.dismiss();
            };
        }.start();
    }
2017-07-25 15:18:05 lq83623 阅读数 2415
  • Android 5.x视频课程

    采用Android5.x进行讲解。本课程包含了几乎所有的Android开发技术,例如,Eclipse和Android Studio开发环境的搭建、各种控件的详细使用方法、布局、四大应用程序组件、数据存储、网络、对话框、Toast、通知、Intent、Android5.x新特性、Fragment、ActionBar、拖放技术、组件开发、硬件访问、定时器、Android NDK等技术。

    79750 人正在学习 去看看 李宁

最近半个月又写点android了(时隔2年半)

事情是这样的.用Weex做的App 的对话框在某些手机上对话框能显示按钮,有些不能显示

如图



锁定问题

1)是否修改过对话框Native的对话框代码?是否修改过对话框调用Weex的JS代码?

2)哪些手机能再现?哪些不能?

3)能再现该问题的手机 Weex的Playground的代码是否正常运行?该正常运行代码能否在自己工程里面正常运行?


锁定结果

1)没有修改过Native的对话框代码也没有修改过Weex的JS代码,

2)android版本6.0以上的手机再现,6.0以下的手机可以正常显示

3)6.0以上的WeexPlayground代码能正常运行.在自己工程里面不能正常运行.


调查路线

1)调查对话框在6.0以上有什么变化?

2)自己工程依赖的控件包是否是指定的正常的包?

2)查看控件的布局边界该按钮是否存在。


调查结果

1)5.0以上android的增加了权限询问,很多文档上说需要设置这两权限。

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
对这两个权限抱有疑问,文档上面说的是:只有该对话框是处于所有App顶层的时候才需要,一般App不需要。

删除这两个权限设置后发现也是可以运行的。

android权限说明请参考: 链接


2)自己工程包的依赖的对话框的包是正常的,有些博客上说自己依赖的包版本不是5.0以上,导致对话框文字不能显示。

查看自己的包依赖如下:android.support.v7.app.AlertDialog


3)打开设置-开发者选项-布局边界,Alert的控件的边界是存在的,按下按钮颜色是灰色以及文字都可以显示出来。


调查关键位置:

既然控件在,按下的颜色也有,则说明只是按钮的文字的颜色问题。

如果对话框没有设置自己的主题颜色,则采用的是AppTheme

在Styles.xml中设置Style。也可以直接使用AppTheme



结果在Color.xml的数值里面 colorAccent为FFFFFF的原因,导致按钮颜色看不见。

修改colorAccent的值为主体颜色后对话框显示正常。





扩展:

增加自己的Style: 

https://isming.me/2015/08/31/modify-alert-style/


以及AppTheme中的各个变量对应的内容

http://www.aoaoyi.com/archives/623.html


参考页面:

http://blog.csdn.net/s1991721/article/details/76054028






2016-05-09 17:50:22 u012990171 阅读数 320
  • Android 5.x视频课程

    采用Android5.x进行讲解。本课程包含了几乎所有的Android开发技术,例如,Eclipse和Android Studio开发环境的搭建、各种控件的详细使用方法、布局、四大应用程序组件、数据存储、网络、对话框、Toast、通知、Intent、Android5.x新特性、Fragment、ActionBar、拖放技术、组件开发、硬件访问、定时器、Android NDK等技术。

    79750 人正在学习 去看看 李宁

1.确定取消对话框

对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。

我们使用AlerDialog 创建对话框

AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   


使用builder设置对话框的title button icon 等等

view plain

builder.setIcon(R.drawable.icon);  

       builder.setTitle("你确定要离开吗?");  

       builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  

           public void onClick(DialogInterface dialog, int whichButton) {  

               //这里添加点击确定后的逻辑  

               showDialog("你选择了确定");  

           }  

       });  

       builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  

           public void onClick(DialogInterface dialog, int whichButton) {  

               //这里添加点击确定后的逻辑  

               showDialog("你选择了取消");  

           }  

       });  

       builder.create().show();  


  这个dialog用于现实onClick后监听的内容信息

view plain

private void showDialog(String str) {  

w AlertDialog.Builder(MainDialog.this)  

     .setMessage(str)  

     .show();  

}  

2.多个按钮信息框


builder.setIcon(R.drawable.icon);  

builder.setTitle("投票");  

builder.setMessage("您认为什么样的内容能吸引您?");  

builder.setPositiveButton("有趣味的", new DialogInterface.OnClickListener() {  

    public void onClick(DialogInterface dialog, int whichButton) {  

        showDialog("你选择了有趣味的");  

    }  

});  

builder.setNeutralButton("有思想的", new DialogInterface.OnClickListener() {  

    public void onClick(DialogInterface dialog, int whichButton) {  

        showDialog("你选择了有思想的");                      

    }  

});  

builder.setNegativeButton("主题强的", new DialogInterface.OnClickListener() {  

    public void onClick(DialogInterface dialog, int whichButton) {  

        showDialog("你选择了主题强的");    

    }  

});  

builder.create().show();  

3.列表框

这个数组用于列表选择

final String[] mItems = {"item0","item1","itme2","item3","itme4","item5","item6"};  

view plain

AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   

        builder.setTitle("列表选择框");  

        builder.setItems(mItems, new DialogInterface.OnClickListener() {  

            public void onClick(DialogInterface dialog, int which) {  

                //点击后弹出窗口选择了第几项  

                showDialog("你选择的id为" + which + " , " + mItems[which]);  

            }  

        });  

        builder.create().show();  

4.单项选择列表框

mSingleChoice 用于记录单选中的ID

int mSingleChoiceID = -1;  

view plain

AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   



mSingleChoiceID = -1;  

builder.setIcon(R.drawable.icon);  

    builder.setTitle("单项选择");  

    builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {  

        public void onClick(DialogInterface dialog, int whichButton) {  

                mSingleChoiceID = whichButton;  

                showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);  

        }  

    });  

    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  

        public void onClick(DialogInterface dialog, int whichButton) {  

            if(mSingleChoiceID > 0) {  

            showDialog("你选择的是" + mSingleChoiceID);  

            }  

        }  

    });  

    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  

        public void onClick(DialogInterface dialog, int whichButton) {  

        }  

    });  

   builder.create().show();  

5.进度条框

点击进度条框按钮后 开启一个线程计算读取的进度假设读取结束为 100
Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。

     mProgressDialog = new ProgressDialog(MainDialog.this);  

     mProgressDialog.setIcon(R.drawable.icon);  

     mProgressDialog.setTitle("进度条窗口");  

     mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  

     mProgressDialog.setMax(MAX_PROGRESS);  

     mProgressDialog.setButton("确定", new DialogInterface.OnClickListener() {  

         public void onClick(DialogInterface dialog, int whichButton) {  

             //这里添加点击后的逻辑  

         }  

     });  

     mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener() {  

         public void onClick(DialogInterface dialog, int whichButton) {  

             //这里添加点击后的逻辑  

         }  

     });  

     mProgressDialog.show();  

     new Thread(this).start();  



ic void run() {  

int Progress = 0;  

while(Progress < MAX_PROGRESS) {  

try {  

    Thread.sleep(100);  

    Progress++;    

    mProgressDialog.incrementProgressBy(1);  

} catch (InterruptedException e) {  

    // TODO Auto-generated catch block  

    e.printStackTrace();  

}     

}  

6.多项选择列表框

MultiChoiceID 用于记录多选选中的id号 存在ArrayList中
选中后 add 进ArrayList
取消选中后 remove 出ArrayList。


ArrayList <Integer>MultiChoiceID = new ArrayList <Integer>();  

AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   

MultiChoiceID.clear();  

builder.setIcon(R.drawable.icon);  

    builder.setTitle("多项选择");  

    builder.setMultiChoiceItems(mItems,  

            new boolean[]{false, false, false, false, false, false, false},  

            new DialogInterface.OnMultiChoiceClickListener() {  

                public void onClick(DialogInterface dialog, int whichButton,  

                        boolean isChecked) {  

                   if(isChecked) {  

                       MultiChoiceID.add(whichButton);  

                       showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);  

                   }else {  

                       MultiChoiceID.remove(whichButton);  

                   }  
                }  

            });  

    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  

        public void onClick(DialogInterface dialog, int whichButton) {  

            String str = "";  

            int size = MultiChoiceID.size();  

            for (int i = 0 ;i < size; i++) {  

            str+= mItems[MultiChoiceID.get(i)] + ", ";  

            }  

            showDialog("你选择的是" + str);  

        }  

    });  

    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  

        public void onClick(DialogInterface dialog, int whichButton) {  

        }  

    });  

   builder.create().show();  

7.自定义布局

讲到自定义布局我就得多说一说了,为什么要多说一说呢?
其实自定义布局在Android的开发中非常重要因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。

自定义dialog有什么好处?

比如我们在开发过长当中要通过介绍系统发送的一个广播弹出一个dialog . 但是dialog必需是基于activity才能呈现出来 如果没有activity 的话 程序就会崩溃。所以我们可以写一个自定义的 dialog 把它定义成一个activity
这样我们收到一条打开dialog的广播后 直接启动这个 activity 程序正常运行~~

这就是自定义dialog的好处。

注明:下面这个例子只是写了自定义dialog 没有把它单独的写在一个activity中 如果须要的话可以自己改一下。


AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   

 LayoutInflater factory = LayoutInflater.from(this);  

 final View textEntryView = factory.inflate(R.layout.test, null);  

     builder.setIcon(R.drawable.icon);  

     builder.setTitle("自定义输入框");  

     builder.setView(textEntryView);  

     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  

         public void onClick(DialogInterface dialog, int whichButton) {  



         EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);  

         EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);  

         showDialog("姓名 :"  + userName.getText().toString()  + "密码:" + password.getText().toString() );  

         }  

     });  

     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  

         public void onClick(DialogInterface dialog, int whichButton) {  

         }  

     });  

   builder.create().show();  


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  

android:layout_height="wrap_content"   

android:layout_width="wrap_content"  

android:orientation="horizontal"  

android:id="@+id/dialog">  

<LinearLayout  

android:layout_height="wrap_content"   

android:layout_width="wrap_content"  

android:orientation="horizontal"  

android:id="@+id/dialogname">  



<TextView android:layout_height="wrap_content"  

   android:layout_width="wrap_content"  

  android:id="@+id/tvUserName"   

  android:text="姓名:" />  

<EditText android:layout_height="wrap_content"  

  android:layout_width="wrap_content"   

  android:id="@+id/etUserName"   

  android:minWidth="200dip"/>  

</LinearLayout>    

<LinearLayout  

android:layout_height="wrap_content"   

android:layout_width="wrap_content"  

android:orientation="horizontal"  

android:id="@+id/dialognum"  

 android:layout_below="@+id/dialogname"  

>  

  <TextView android:layout_height="wrap_content"  

   android:layout_width="wrap_content"  

  android:id="@+id/tvPassWord"   

  android:text="密码:" />  

<EditText android:layout_height="wrap_content"  

  android:layout_width="wrap_content"   

  android:id="@+id/etPassWord"   

  android:minWidth="200dip"/>  

 </LinearLayout>    

  </RelativeLayout></span>  

8.读取进度框

显示一个正在转圈的进度条loading

mProgressDialog = new ProgressDialog(this);  

 mProgressDialog.setTitle("读取ing");  

 mProgressDialog.setMessage("正在读取中请稍候");  

 mProgressDialog.setIndeterminate(true);  

 mProgressDialog.setCancelable(true);  

 mProgressDialog.show();  
2016-08-03 23:56:06 ldxicare 阅读数 168
  • Android 5.x视频课程

    采用Android5.x进行讲解。本课程包含了几乎所有的Android开发技术,例如,Eclipse和Android Studio开发环境的搭建、各种控件的详细使用方法、布局、四大应用程序组件、数据存储、网络、对话框、Toast、通知、Intent、Android5.x新特性、Fragment、ActionBar、拖放技术、组件开发、硬件访问、定时器、Android NDK等技术。

    79750 人正在学习 去看看 李宁

Android对话框简单例子

通知对话框(Dialog Notification)

   AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setTitle("通知对话框");
   builder.setIcon(R.mipmap.ic_launcher);
   builder.setMessage("是否升级程序?");
   builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialogInterface, int i) {
           Log.i("Click","PositiveButton");
       }
   });
   builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialogInterface, int i) {
           Log.i("Click","NegativeButton");
       }
   });
  //builder.create();
   builder.show();

单选对话框(Dialog SingleChoice)

   AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setTitle("单选对话框");
   final String[] items = new String[]{"Mode_DZ","Mode_DD","Mode_DEMO"};
   builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialogInterface, int i) {
           Log.i("Click2",items[i]+" 被点击了");
           dialogInterface.cancel();
       }
   });
   builder.show();

多选对话框(Dialog MultiChoice)

   AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setTitle("多选对话框");
   final String[] items = new String[]{"Mode_DZ","Mode_DD","Mode_DEMO"};
   boolean[] status = new boolean[]{true,true,false};
   builder.setMultiChoiceItems(items, status, new DialogInterface.OnMultiChoiceClickListener() {
       @Override
       public void onClick(DialogInterface dialogInterface, int i, boolean b) {
           Log.i("Click3",items[i]+"被点击了"+b);
       }
   });
   builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialogInterface, int i) {
       }
   });
   builder.show();

进度条对话框(ProgressDialog)

   final ProgressDialog dialog = new ProgressDialog(this);
   dialog.setTitle("提醒");
   dialog.setMessage("正在加载中...");
   dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
   dialog.setMax(100);
   dialog.show();
   new Thread(new Runnable() {
       @Override
       public void run() {
           for (int i = 0; i < 100; i++) {
               dialog.setProgress(i);
               try {
                   Thread.sleep(100);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }
           dialog.dismiss();
       }
   }).start();

按xml布局的对话框

   LayoutInflater factory = LayoutInflater.from(this);
   final View textEntryView = factory.inflate(R.layout.posrangedlg, null);
   etMinPos = (EditText) textEntryView.findViewById(R.id.et_MinPosition);
   etMaxPos = (EditText) textEntryView.findViewById(R.id.et_MaxPosition);

   AlertDialog dlg = new AlertDialog.Builder(this)
           .setTitle("输入位置范围")
           .setView(textEntryView)
           .setPositiveButton("OK", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int whichButton) {

                     String min = etMinPos.getText().toString();
                     String max = etMaxPos.getText().toString();
               }
           })
           .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int whichButton) {
               }
           })
           .create();
   dlg.show();

Android——对话框

阅读数 762

Android对话框

阅读数 135

没有更多推荐了,返回首页