对话框类似于Acitivity,可以在对话框中添加布局和Widget,对话框有两种:AlertDialog&PRogressDialog。
AlertDialog是protect类型,无法使用new AlertDialog()创建,必须使用AlertDialog.builder()创建。同时,可以使用showDialog(int id)和dismissDialog(int id)是对话框显示和消失。
调用showDialog()方法时,系统会回调onCreateDialog(int id)方法。设置属性包括:标题,消息,图片,“确定”按钮
public class MainActivity extends Activity { public final int Dialog_1=1; @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showDialog(Dialog_1); //showDialog2(); } protected Dialog onCreateDialog(int id){ switch(id){ case Dialog_1: return new AlertDialog.Builder(MainActivity.this).setTitle("DIALOG_1").setMessage("dialog1"). setIcon(android.R.drawable.ic_dialog_info).setNegativeButton("cancel", null). setPositiveButton("confirm", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO 自动生成的方法存根 showDialog2(); } }).create();//不要忘记调用create()是之生效 default: return null; } }单选框关键方法是:setSingleChoiceItems(new String[] {“Item1”, “Item2”},int checkedItem, OnClickListener listenter) 如果是多选框,方法是:setMultiChoiceItems(new String[] {“Item1”, “Item2”},boolean[] checkedItems, OnMultiChoiceClickListener listenter)
注意:setMessage()和setSingleChoiceItems()是显示在同一个地方,同时使用会覆盖掉。只会显示一个。要同时显示message和列表,可采用下面的View来实现。
protected void showDialog2() { // TODO 自动生成的方法存根 new AlertDialog.Builder(this).setTitle("DIALOG_2").setIcon(android.R.drawable.ic_dialog_info). setSingleChoiceItems(new String[] {"Item1", "Item2"},0, null).setNegativeButton("cancel", null).setPositiveButton("confirm", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO 自动生成的方法存根 showDialog3(); } }).show(); }该方法最后直接调用的show,可在按钮触发事件时直接调用,也可以直接子啊OnCreate()方法中调用showDialog2()。
在对话框中显示listview,其适配器adapter中的属性配置有所不同,
SimpleAdapter adapter=new SimpleAdapter(this, listItem, android.R.layout.select_dialog_item, new String[]{"ItemName"}, new int[]{android.R.id.text1});因为是在对话框下显示,其布局文件要用android类下的系统布局资源和资源id。即:andrid.R.layout.select_dialog_item。 如果view是多选框, 布局文件使用:android.R.layout.select_dialog_multichoice, 还需要设置m_ListView.setChoiceMode(m_ListView.CHOICE_MODE_MULTipLE);默认情况下是单选框模式。
AlertDialog实现简单的对话框对话框是单选框和多选框对话框中显示View示例ListViewProgressDialog目录
新闻热点
疑难解答