您的位置:首页 > 移动开发 > Android开发

android 对话框之AlertDialog&ProgressDialog

2017-02-27 13:13 423 查看
对话框类似于Acitivity,可以在对话框中添加布局和Widget,对话框有两种:AlertDialog&ProgressDialog。

AlertDialog

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()。



对话框中显示View,(示例ListView)

在对话框中显示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);默认情况下是单选框模式。

protected void showDialog3() {
// TODO 自动生成的方法存根
ArrayList<HashMap<String, String>> listItem=new ArrayList<HashMap<String,String>>();
HashMap<String, String> map1=new HashMap<String,String>();
map1.put("ItemName", "add");
HashMap<String, String> map2=new HashMap<String,String>();
map2.put("ItemName", "delete");
HashMap<String, String> map3=new HashMap<String,String>();
map3.put("ItemName", "exit");
listItem.add(map1);
listItem.add(map2);
listItem.add(map3);
SimpleAdapter adapter=new SimpleAdapter(this, listItem, android.R.layout.select_dialog_multichoice, new String[]{"ItemName"}, new int[]{android.R.id.text1});
ListView m_ListView=new ListView(this);
m_ListView.setAdapter(adapter);
m_ListView.setChoiceMode(m_ListView.CHOICE_MODE_MULTIPLE);
new AlertDialog.Builder(this).setTitle("DIALOD_4").setMessage("wo de zi ding yi").setIcon(android.R.drawable.ic_dialog_info).setPositiveButton("confirm", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO 自动生成的方法存根
showDialog4();
}
}).setNegativeButton("cancel", null).setView(m_ListView).create().show();
}




ProgressDialog

protected void showDialog4() {
// TODO 自动生成的方法存根
ProgressDialog dialog=new ProgressDialog(this);
dialog.setMessage("dialog6");
dialog.setCancelable(true);
dialog.show();
}




目录

AlertDialog
实现简单的对话框

对话框是单选框和多选框

对话框中显示View示例ListView

ProgressDialog

目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: