Java 如何将多选对话框转换为单选对话框
我有以下代码,可从用户处获得多项选择:Java 如何将多选对话框转换为单选对话框,java,android,android-dialog,Java,Android,Android Dialog,我有以下代码,可从用户处获得多项选择: protected Button selectColoursButton; protected CharSequence[] colours = { "Red", "Green", "Blue", "Yellow", "Orange", "Purple", "MAGENTA", "WHITE", "SKYBLUE" }; protected ArrayList<CharSequence> selectedColours = new A
protected Button selectColoursButton;
protected CharSequence[] colours = { "Red", "Green", "Blue", "Yellow", "Orange", "Purple", "MAGENTA", "WHITE", "SKYBLUE" };
protected ArrayList<CharSequence> selectedColours = new ArrayList<CharSequence>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
selectColoursButton = (Button) findViewById(R.id.select_colours);
selectColoursButton.setOnClickListener(test);
}
View.OnClickListener test = new View.OnClickListener() {
public void onClick(View v) {
switch(v.getId()) {
case R.id.select_colours:
// TODO: Show the colours dialog
showSelectColoursDialog();
break;
default:
break;
}
}
};
protected void showSelectColoursDialog() {
boolean[] checkedColours = new boolean[colours.length];
int count = colours.length;
for(int i = 0; i < count; i++)
checkedColours[i] = selectedColours.contains(colours[i]);
DialogInterface.OnMultiChoiceClickListener coloursDialogListener = new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked) {
selectedColours.add(colours[which]);
dialog.dismiss();
}
else
selectedColours.remove(colours[which]);
onChangeSelectedColours();
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Colours");
builder.setMultiChoiceItems(colours, checkedColours, coloursDialogListener);
AlertDialog dialog = builder.create();
dialog.show();
}
protected void onChangeSelectedColours() {
StringBuilder stringBuilder = new StringBuilder();
for(CharSequence colour : selectedColours)
stringBuilder.append(colour + ",");
selectColoursButton.setText(stringBuilder.toString());
}
受保护按钮选择颜色按钮;
受保护的字符序列[]颜色={“红色”、“绿色”、“蓝色”、“黄色”、“橙色”、“紫色”、“洋红”、“白色”、“天蓝色”};
受保护的ArrayList SelectedColors=新ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
选择颜色按钮=(按钮)查找视图id(R.id.select_colors);
选择colorsbutton.setOnClickListener(测试);
}
View.OnClickListener测试=新建View.OnClickListener(){
公共void onClick(视图v){
开关(v.getId()){
外壳R.id.选择颜色:
//TODO:显示“颜色”对话框
show selectcolorsdialog();
打破
违约:
打破
}
}
};
受保护的void showselectcolorsdialog(){
boolean[]checkedcolors=新的boolean[colors.length];
整数计数=颜色。长度;
for(int i=0;i
如何将其转换为单选,一旦选定,对话框将关闭?尝试
builder.setSingleChoiceItems(String[] items, int defaultPos, DialogInterface.OnClickListener listener)
谢谢你的回复。我知道它的编写方式,但如何更改现有的
builder
行?