Android和多选对话框

时间:2013-03-22 18:34:03

标签: android

我有一个多选择对话框,但我遇到了一个小问题。这是代码:

    int in;
protected void showSelectMeasurementsDialog() {
      boolean[] checkedMeasurements = new boolean[measurements.length];
      int count = measurements.length;

      for(int i = 0; i < count; i++)

              checkedMeasurements[i] = selectedMeasurements.contains(measurements[i]);
    in = 0;
      DialogInterface.OnMultiChoiceClickListener measurementsDialogListener = new DialogInterface.OnMultiChoiceClickListener() {
       @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecselectedMeasurementsChecked){
           if(isChecselectedMeasurementsChecked)
               if(in<3){
                   selectedMeasurements.add(measurements[which]);
                   in++;
               }

          else{
            selectedMeasurements.remove(measurements[which]);
            in--;
          }

          onChangeSelectedMeasurements();
        }
       };

      AlertDialog.Builder builder = new AlertDialog.Builder(this);
      builder.setTitle("Select Measurements");
      builder.setMultiChoiceItems(measurements, checkedMeasurements, measurementsDialogListener);

      AlertDialog dialog = builder.create();
      dialog.show();
    }
protected void onChangeSelectedMeasurements() {
  StringBuilder stringBuilder = new StringBuilder();

  for(CharSequence colour : selectedMeasurements)
    stringBuilder.append(colour + ",");

}

一切都很好,我有一个包含一些元素的列表。但我想添加功能,我不能选择超过3个元素。现在我可以从列表中选择所有元素。我想实现我只能选择3个元素。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

你可能只有一个计数器变量,如果它等于3,则onClick表示你不能再选择,如果它更多,那么你将该对话框项设置为未选中。我没试过,但它可能会奏效。但是,更好的方法是,考虑将Actviitydialog theme一起使用,特别是如果您要为此添加更多功能。您需要做的就是添加

android:theme="@android:style/Theme.Dialog"

转到Activity中的manifest,它会显示dialog,其中包含Activity的所有功能。希望这有帮助