Как я могу сделать AlertDialog с несколькими элементами, имена которых определены во время выполнения? - PullRequest
1 голос
/ 05 июля 2011

Это объясняет, как это сделать, когда вы знаете имена элементов во время компиляции, но что, если я хочу, чтобы они были определены во время выполнения ... т.е. сегодня, завтра, (день и дата после завтра) и т.д ...

1 Ответ

0 голосов
/ 05 июля 2011

Переменная items должна быть объявлена ​​как final.

Нет, это не так.

Не означает ли окончательно, что я не могу изменить значение?

Для этого конкретного примера он объявлен final, потому что он показан как просто локальная переменная, и значение также необходимо внутри анонимного DialogInterface.OnClickListener внутреннего класса.

Однако:

  1. То, что что-то объявлено final, не означает, что оно должно быть буквальным. Например, ключевое слово final иногда используется в параметрах для методов, и они явно не создаются статически. Цитируя Wikipedia : «Конечную переменную можно инициализировать только один раз, либо с помощью инициализатора, либо с помощью оператора присваивания».

  2. Есть и другие места, где вы можете поместить свой массив, кроме локальной переменной, для которых не требуется ключевое слово final, если вы не хотите использовать final. Один вероятный кандидат будет членом данных вашей деятельности.

...