我有一个多选择对话框,但我遇到了一个小问题。这是代码:
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 :(得分:0)
你可能只有一个计数器变量,如果它等于3,则onClick表示你不能再选择,如果它更多,那么你将该对话框项设置为未选中。我没试过,但它可能会奏效。但是,更好的方法是,考虑将Actviity
与dialog theme
一起使用,特别是如果您要为此添加更多功能。您需要做的就是添加
android:theme="@android:style/Theme.Dialog"
转到Activity
中的manifest
,它会显示dialog
,其中包含Activity
的所有功能。希望这有帮助