我在Android开发站点找到了以下文档,该文档适用于创建带有硬编码元素的AlertDialog:http://developer.android.com/guide/topics/ui/dialogs.html#AddingAList。
如果您可以对它们进行硬编码,则可以正常工作。但是,在我的应用程序中,我需要在运行时生成项目(在生成之前,我甚至不知道项目列表的长度),第一次请求对话框时。
如何使用在运行时生成的列表,而不是示例中用于AlertDialog中项目的final CharSequence[]
?
由于
答案 0 :(得分:7)
仅当您从内部类(在本例中为OnClickListener)中访问变量时,变量才需要为final
。您是否需要访问内部类中的项目列表?
final
仅表示引用不得更改(=变量始终指向同一对象)。它没有说明对象是如何创建的。你可以轻松地做到:
List<String> strings = new ArrayList<String>();
strings.add("Red");
strings.add("Green");
strings.add("Blue");
final CharSequence[] items = strings.toArray(new String[strings.size()]);