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
行?