I’m trying to follow the android docs about multiple selection dialog boxes. I’m having an issue, and I think it’s with the type of arrays i’m trying to load in.
public void addCondition(View view){
ArrayList<String> mHelperNames= new ArrayList<String>();
mHelperNames.add("Test Item");
mHelperNames.add("Test Item");
mHelperNames.add("Test Item");
mSelectedItems = new ArrayList();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My Title")
.setMultiChoiceItems(mHelperNames, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
if (isChecked) {
mSelectedItems.add(which);
} else if (mSelectedItems.contains(which)) {
mSelectedItems.remove(Integer.valueOf(which));
}
}
})
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
//Create onlcick method
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
//Create onlcick method
}
});
builder.show();
}
Above is my code, but it’s red-line city in eclipse:
In the docs, mSelectedItems is never declared, and I’m not too sure what I’m declaring it as.
The error on .SetMultipleChoiceItems is:
The method setMultiChoiceItems(int, boolean[], DialogInterface.OnMultiChoiceClickListener) in the type AlertDialog.Builder is not applicable for the arguments (ArrayList, null, new DialogInterface.OnMultiChoiceClickListener(){})
But if i change it from a string, how do I show text items in it? Any help will be really appreciated.
Tom
You must provide a
CharSequence[]tosetMultiChoiceItemsmethod, not anArrayList.You could create
mHelperNameslike this:And don’t forget to declare
mSelectedItemstoo:(It has to be final because you access it from an inner class)
You can also keep
mHelperNamesas an ArrayList if you need to modify it later. Then you need to convert it to an array when callingsetMultiChoiceItems: