Android 如何使用字符串资源以编程方式更改ListView的entries字段
我在xml中定义了一个简单的列表视图:Android 如何使用字符串资源以编程方式更改ListView的entries字段,android,listview,Android,Listview,我在xml中定义了一个简单的列表视图: <ListView android:id="@+id/mode_list" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:entries="@array/mode_array_generic" /> 我在string.xml中定义了三个
<ListView
android:id="@+id/mode_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:entries="@array/mode_array_generic" />
我在string.xml中定义了三个不同的字符串数组(其中一个是“mode\u array\u generic”),我想根据传递的参数选择在片段启动时加载哪个字符串数组
在“onCreateView”期间,是否有一种干净简单的方法将“entries”字段重定向到不同的字符串资源?MikeM.的评论为我提供了所需的提示。这是我的解决方案,供将来参考 使用开关或if-else块基于参数获取字符串数组:
String[] modeList = getActivity().getResources().getStringArray(R.array.mode_array_generic);
然后使用它创建一个ArrayAdapter:
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, modeList);
您不能在运行时更改
的条目
值,如果这是您的意思的话。但是,该属性所做的只是使列表视图
从资源
加载该数组,并设置由该数组和android.R.layout.simple\u list\u item\u 1
布局构造的ArrayAdapter
。你自己可以很容易做到。谢谢@MikeM。这是一个足够的提示,我需要找到什么来解决它。
ListView listView = (ListView) rootView.findViewById(R.id.mode_list);
listView.setAdapter(adapter);