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はもう選択できないと言い、それ以上の場合はそのダイアログ項目をオフに設定します。私はそれを試していませんが、うまくいくかもしれません。ただし、特にこれにさらに機能を追加する場合は、 をActviityとともに使用することを検討することをお勧めしますdialog theme。あなたがする必要があるのは、追加するだけです

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

のすべての機能を備えた の外観が得られActivityます。お役に立てればmanifestdialogActivity

于 2013-03-22T18:49:25.510 に答える