У меня есть диалог с несколькими вариантами действий. У меня есть логический массив, чтобы отслеживать, какие элементы выбраны в диалоговом окне. Поэтому я хочу, чтобы каждый раз, когда щелкали по элементу, делалось соответствующее место в моем массиве. Массив создается в onCreateDialog перед возвратом.
public Dialog onCreateDialog(int id) {
userlistlocal=getuserlist(username);
boolean[] usernamechecked=new boolean[userlistlocal.length/3];
Arrays.fill(usernamechecked,false);
return new AlertDialog.Builder(Newevent.this)
.setIcon(R.drawable.ic_menu_invite)
.setTitle("Add People")
.setMultiChoiceItems(userselectionlistlocal,
null,new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int whichButton,
boolean isChecked) {
/* User clicked on a check box do some stuff */
usernamechecked[whichButton]=isChecked;<-------HERE
}
})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked Yes so do some stuff */
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked No so do some stuff */
}
})
.create();
}
Но когда я добавляю в метод onClick мой логический массив, он говорит, что он должен быть окончательным (невозможно ссылаться на неконечную переменную username, проверенную внутри внутреннего класса, определенного в другом методе). Я не знаю, что делать