我是 android studio 的新人, 我正在使用 listItem。下面是我的一些代码
String[] items = {
"1 st",
"2 nd",
"3 rd",
"4 th"};
titleList = new ArrayList<>(Arrays.asList(items));
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.txtitem,titleList);
listView.setAdapter(adapter);
上面的代码工作正常。但我想使用超过 1 个数组树 我想使用 2D 数组,但我不明白这里要做什么是我尝试过的新代码。但失败了
String[][] items = {
{"1 st","12 th Sept"},
{"2 nd","13 th Sept"},
{"3 rd","14 th Sept"},
{"4 th","15 th Sept"},
};
titleList = new ArrayList<>(Arrays.asList(items[0]));
dateList = new ArrayList<>(Arrays.asList(items[1]));
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.txtitem,titleList);
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.date,dateList);
listView.setAdapter(adapter);
最佳答案
1) 您应该更改 二维数组
的顺序,如下所示。但它仍然不起作用(见下一点)
String[][] items = {
{"1 st", "2 nd", "3 rd", "4 th"},
{"12 th Sept", "13 th Sept", "14 th Sept", "15 th Sept"},
};
2) 下面的第一行中,您的 adapter
使用 titlelist
引用 ArrayAdapter
,在下一行中,您将更改相同 adapter 对象
以指向 datelist
ArrayAdapter
。
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.txtitem,titleList);
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.date,dateList);
因此,在第二行之后,您的适配器不再指向 titlelist
ArrayAdapter。它仅引用 datelist
ArrayAdapter。实际上,它永远无法将 datelist
和 titlelist
同时保存在一起。
那正确的方法是什么?
创建一个包含 title
和 date
的模型 class
,如下所示 -
class YourModel {
String title;
String date;
}
创建此模型类的对象的数组
,并将该对象数组传递给您的自定义适配器
。这是唯一的方法。您必须创建自定义 ArrayAdapter。从here了解它.
关于java - 在 android studio 中使用 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46352101/