AlertDialog的Radio列表样式在AlterDialogListItem基础上有一个样式。基本的操作一样,只不过要注意使用两个OnClickListener事件,一个OnClickListener事件提供给选项,一个OnClickListener事件提供给按钮
案例
R.array.hobby字符串资源文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="hobby">
<item>吃饭</item>
<item>上网</item>
<item>睡觉</item>
<item>LOL</item>
</string-array>
</resources>
java文件
public class MainActivity extends AppCompatActivity {
TextView t1;
String[] hobbys;
AlertDialog alertDialog;
//Dialog按钮事件
DialogInterface.OnClickListener onClickListenerPositive;
//当前的选项下标记录
int choiceItemIndex = -1;
//Dialog单选项事件
DialogInterface.OnClickListener onClickListenerSingleChoiceItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hobbys = getResources().getStringArray(R.array.hobby);
t1 = (TextView) findViewById(R.id.t1);
onClickListenerSingleChoiceItems = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
choiceItemIndex = which;
}
};
onClickListenerPositive = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == AlertDialog.BUTTON_POSITIVE) {
//修改t1的值
t1.setText(hobbys[choiceItemIndex]);
}
}
};
}
public void btn2(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择你的爱好");
//Radio样式的单选项内容
//参数1:items 字符串数组
//参数2:checkedItem 默认选择项下标
//参数3:listener 选项事件
builder.setSingleChoiceItems(hobbys, 0, onClickListenerSingleChoiceItems);
//Dialog按钮
builder.setPositiveButton("确定", onClickListenerPositive);
alertDialog = builder.create();
alertDialog.show();
}
}