我的 strings.xml 文件中有一个空的字符串数组资源,如下所示:
<string-array name="categories"/>
我正在从 API 获取数据数组,我需要将其填充到 ListView 中。它的 ArrayAdapter 接受一个 @ArrayResource int
作为其资源,如下所示:
public void showListViewDialog(…, @ArrayRes int arrayResource) {
...
ListView listView = alertDialogView.findViewById(R.id.listViewCategories);
ArrayAdapter arrayAdapter = ArrayAdapter.createFromResource(context,
arrayResource, R.layout.custom_list_item);
listView.setAdapter(arrayAdapter);
}
在我的 Java 类中,这就是我检索字符串数组资源的方式:
List<String> categoriesToAdd= Arrays.asList(getResources().getStringArray(R.array.categories));
我怎样才能将数据添加回其中?我已尝试以下方法,但不起作用:
List<String> listCategories = new ArrayList<>();
listCategories.add(categoriesToAdd);
最佳答案
无法在运行时更改字符串数组资源。因此您无法更新它以在 ListView
中显示数据。
您不需要字符串数组资源来创建ArrayAdapter
。相反,您可以简单地将 ArrayList
传递给其构造函数来创建它。
例如:
List<String> data = new ArrayList<>();
// sample data
data.add("Data 1");
data.add("Data 2");
final ArrayAdapter<String> adapter = new ArrayAdapter<>(this /*context*/,
android.R.layout.simple_list_item_1, android.R.id.text1, data);
ListView listView = findViewById(R.id.listView);
listView.setAdapter(adapter);
现在,如果您想将数据添加到列表中,请使用:
adapter.add("Data 3");
关于java - 以编程方式访问字符串数组资源并为其添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54301811/