2013-03-22 61 views
0

我有一個multichoice對話框,但是我有一個小問題。這是代碼: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個元素。我怎樣才能做到這一點?

回答

0

你可能只是有一個計數器變量,如果它等於3,那麼onClick表示你不能再選擇,如果它更多,那麼你將該對話框項設置爲未選中。我沒有嘗試過,但它可能工作。然而,更好的方法,特別是如果你要增加更多的功能,可以考慮使用Actviitydialog theme。所有你需要做的就是添加

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

Activitymanifest,它會給一個dialog的外觀與Activity的所有功能。希望這可以幫助

+0

我知道應該如何實現這一目標,但是我需要解決方案我該如何在代碼中實現這一點。 – user1302569 2013-03-22 18:54:18