Welcome

首页 / 移动开发 / Android / Android AlertDialog对话框详解及实例

Android  AlertDialog


关系图如下:

Android主要提供四种对话框:

1:AlertDialog:功能最丰富,实际应用最广的对话框。
2:ProgressDialog:进度条对话框
3:DatePickerDialog:日期选择器对话框
4:TimePickerDialog:时间选择器对话框

创建一个对话框的步骤:
AlertDialog.Builder builder = new AlertDialog.Builder(this)// 1:设置对话框标题.setTitle("自定义列表项对话框")// 2:设置图标.setIcon(R.drawable.tools)// 3:设置内容.setMessage("对话框的测试内容
第二行内容");// 为AlertDialog.Builder添加“确定”按钮setPositiveButton(builder);// 为AlertDialog.Builder添加“取消”按钮setNegativeButton(builder).create().show();
代码区:

main.xml代码区:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"><!-- 显示一个普通的文本编辑框组件 --><EditText android:id="@+id/show"android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false"/><!-- 定义一个普通的按钮组件 --><Buttonandroid:layout_width="match_parent" android:layout_height="wrap_content" android:text="简单对话框"android:onClick="simple"/><!-- 定义一个普通的按钮组件 --><Buttonandroid:layout_width="match_parent" android:layout_height="wrap_content" android:text="简单列表项对话框"android:onClick="simpleList"/> <!-- 定义一个普通的按钮组件 --><Buttonandroid:layout_width="match_parent" android:layout_height="wrap_content" android:text="单选列表项对话框"android:onClick="singleChoice"/> <!-- 定义一个普通的按钮组件 --><Buttonandroid:layout_width="match_parent" android:layout_height="wrap_content" android:text="多选列表项对话框"android:onClick="multiChoice"/> <!-- 定义一个普通的按钮组件 --><Buttonandroid:layout_width="match_parent" android:layout_height="wrap_content" android:text="自定义列表项对话框"android:onClick="customList"/> <!-- 定义一个普通的按钮组件 --><Buttonandroid:layout_width="match_parent" android:layout_height="wrap_content" android:text="自定义View对话框"android:onClick="customView"/> </LinearLayout>
Activity代码区:
public class MainActivity extends Activity {TextView show;String[] items = new String[] {"aserbao", "Android"," Java","IOS" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);show = (TextView) findViewById(R.id.show);}public void simple(View source){AlertDialog.Builder builder = new AlertDialog.Builder(this)// 设置对话框标题.setTitle("简单对话框")// 设置图标.setIcon(R.drawable.tools).setMessage("对话框的测试内容
第二行内容");// 为AlertDialog.Builder添加“确定”按钮setPositiveButton(builder);// 为AlertDialog.Builder添加“取消”按钮setNegativeButton(builder).create().show();}public void simpleList(View source){AlertDialog.Builder builder = new AlertDialog.Builder(this)// 设置对话框标题.setTitle("简单列表对话框")// 设置图标.setIcon(R.drawable.tools)// 设置简单的列表项内容.setItems(items, new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){show.setText("你选中了《" + items[which] + "》");}});// 为AlertDialog.Builder添加“确定”按钮setPositiveButton(builder);// 为AlertDialog.Builder添加“取消”按钮setNegativeButton(builder).create().show();}public void singleChoice(View source){AlertDialog.Builder builder = new AlertDialog.Builder(this)// 设置对话框标题.setTitle("单选列表项对话框")// 设置图标.setIcon(R.drawable.tools)// 设置单选列表项,默认选中第二项(索引为1).setSingleChoiceItems(items, 1, new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){show.setText("你选中了《" + items[which] + "》");}});// 为AlertDialog.Builder添加“确定”按钮setPositiveButton(builder);// 为AlertDialog.Builder添加“取消”按钮setNegativeButton(builder).create().show();}public void multiChoice(View source){AlertDialog.Builder builder = new AlertDialog.Builder(this)// 设置对话框标题.setTitle("多选列表项对话框")// 设置图标.setIcon(R.drawable.tools)// 设置多选列表项,设置勾选第2项、第4项.setMultiChoiceItems(items, new boolean[]{false , true ,false ,true}, null);// 为AlertDialog.Builder添加“确定”按钮setPositiveButton(builder);// 为AlertDialog.Builder添加“取消”按钮setNegativeButton(builder).create().show();}public void customList(View source){AlertDialog.Builder builder = new AlertDialog.Builder(this)// 设置对话框标题.setTitle("自定义列表项对话框")// 设置图标.setIcon(R.drawable.tools)// 设置自定义列表项.setAdapter(new ArrayAdapter<String>(this, R.layout.array_item, items), null);// 为AlertDialog.Builder添加“确定”按钮setPositiveButton(builder);// 为AlertDialog.Builder添加“取消”按钮setNegativeButton(builder).create().show();}public void customView(View source){// 装载appsrcmain
eslayoutlogin.xml界面布局文件TableLayout loginForm = (TableLayout)getLayoutInflater().inflate( R.layout.login, null);new AlertDialog.Builder(this)// 设置对话框的图标.setIcon(R.drawable.tools)// 设置对话框的标题.setTitle("自定义View对话框")// 设置对话框显示的View对象.setView(loginForm)// 为对话框设置一个“确定”按钮.setPositiveButton("登录", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// 此处可执行登录处理}})// 为对话框设置一个“取消”按钮.setNegativeButton("取消", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog,int which){// 取消登录,不做任何事情}})// 创建并显示对话框.create().show();}private AlertDialog.Builder setPositiveButton(AlertDialog.Builder builder){// 调用setPositiveButton方法添加“确定”按钮return builder.setPositiveButton("确定", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){show.setText("单击了【确定】按钮!");}});}private AlertDialog.Builder setNegativeButton(AlertDialog.Builder builder){// 调用setNegativeButton方法添加“取消”按钮return builder.setNegativeButton("取消", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){show.setText("单击了【取消】按钮!");}});}}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!