Android 实现单选对话框

来源:互联网 发布:社会数据调查网站 编辑:程序博客网 时间:2024/05/19 02:23

项目中有一次用到了单选对话框,突然发现因为许久不用,我竟然对这样一个小小的知识点有点陌生,这还得了?正好最近打算开始写自己的博客,不为其他,只为记录自己的成长,就从这一篇开始吧!

具体实现步骤如下:
1.声明一个全局数组,作为对话框列表的内容

String[] Items = {"Java","Android","C","H5","JS"};

当然,我们也可以在xml文件中设置其列表选项:res/values目录下新建array.xml文件,文件内容如下:

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="hobby">        <item>Java</item>        <item>Android</item>        <item>C</item>        <item>H5</item>        <item>JS</item>    </string-array></resources>

2.定义一个布局文件,内容很简单只有一个按钮,当点击按钮时弹出单选对话框。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/activity_single_dialog"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <Button        android:id="@+id/btn_single"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="弹出单选对话框"/></LinearLayout>

3.创建一个单选列表对话框,注意此处必须要借用AlertDialog.Builder作为对话框内容的载体,主要代码如下:

private void ShowSingleDialog() {    TempWhich = 0; //TempWhich表示选择的Item位置,默认为0    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setIcon(R.mipmap.ic_launcher); //设置图标    builder.setTitle("请选择喜欢的开发语言:"); //设置标题    builder.setCancelable(false); //设置是否可以点击对话框外部取消,false表示不能,true表示能    //点击选择Item监听    builder.setSingleChoiceItems(R.array.hobby, 0, new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            String hobby = getResources().getStringArray(R.array.hobby)[which];            TempWhich = which;            Toast.makeText(DialogActivity.this, "您选择了" + which , Toast.LENGTH_SHORT).show();        }    });    //确定按钮监听    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            //此处Which一直返回-1,故需要借用TempWhich            switch (TempWhich){                case 0:                    Toast.makeText(DialogActivity.this, "您选择了JAVA" , Toast.LENGTH_SHORT).show();                    break;                case 1:                    Toast.makeText(DialogActivity.this, "您选择了Android" , Toast.LENGTH_SHORT).show();                    break;                case 2:                    Toast.makeText(DialogActivity.this, "您选择了C" , Toast.LENGTH_SHORT).show();                    break;                default:                    Toast.makeText(DialogActivity.this, "您选择了其他" , Toast.LENGTH_SHORT).show();                    break;            }        }    });    //取消按钮监听    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            //此处添加取消按钮的点击逻辑        }    });    //还可以设置一个Neutral按钮,表示中立    builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            //此处添加忽略按钮的点击逻辑        }    });    builder.show();}

4.效果图在此就不展示了,有兴趣的童鞋可以试一下。

0 0
原创粉丝点击