版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/fengyu_xueer/article/details/61920811
项目中有一次用到了单选对话框,突然发现因为许久不用,我竟然对这样一个小小的知识点有点陌生,这还得了?正好最近打算开始写自己的博客,不为其他,只为记录自己的成长,就从这一篇开始吧!
具体实现步骤如下:
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.效果图在此就不展示了,有兴趣的童鞋可以试一下。