Android和多选对话框
问题描述:
我有一个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个元素。我怎样才能做到这一点?
答
你可能只是有一个计数器变量,如果它等于3,那么onClick表示你不能再选择,如果它更多,那么你将该对话框项设置为未选中。我没有尝试过,但它可能工作。然而,更好的方法,特别是如果你要增加更多的功能,可以考虑使用Actviity
和dialog theme
。所有你需要做的就是添加
android:theme="@android:style/Theme.Dialog"
到Activity
在manifest
,它会给一个dialog
的外观与Activity
的所有功能。希望这可以帮助
我知道应该如何实现这一目标,但是我需要解决方案我该如何在代码中实现这一点。 – user1302569 2013-03-22 18:54:18