0

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

    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 个元素。我怎样才能做到这一点?

4

1 回答 1

0

您可能只有一个计数器变量,如果它等于 3,则 onClick 表示您无法再选择,如果更多,则将该对话框项设置为未选中。我没有尝试过,但它可能会起作用。但是,更好的方法,尤其是如果您要为此添加更多功能,是考虑使用 aActviity和 a dialog theme。您需要做的就是添加

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

Activity你的那个manifest,它会给出一个dialog具有所有功能的外观Activity。希望这可以帮助

于 2013-03-22T18:49:25.510 回答