android 对话框之AlertDialog&ProgressDialog

本文介绍了Android中的两种对话框:AlertDialog和ProgressDialog。AlertDialog可通过AlertDialog.Builder创建,支持设置标题、消息、单选和多选选项。需要注意,设置message和列表会互相覆盖,可以使用自定义View解决。示例中展示了在对话框中显示ListView的方法。ProgressDialog则用于展示进度,通常用于后台任务的加载指示。
摘要由CSDN通过智能技术生成

对话框类似于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();
    }

进度对话框

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值