java - 在 android studio 中使用 2D 数组

标签 java android arrays listview android-studio

我是 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。实际上,它永远无法将 datelisttitlelist 同时保存在一起。

那正确的方法是什么?

创建一个包含 titledate 的模型 class,如下所示 -

class YourModel {
String title;
String date;
}

创建此模型类的对象的数组,并将该对象数组传递给您的自定义适配器。这是唯一的方法。您必须创建自定义 ArrayAdapter。从here了解它.

关于java - 在 android studio 中使用 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46352101/

相关文章:

java - 如何在 VSCode 中热重载 Tomcat 服务器

java - 打印时如果数组中的int元素等于6则跳过

java - SWT:如何从一个 Action 创建一个普通的按钮

java - 有没有办法获取 JavaFX 属性的所有绑定(bind)?

android - Android:如何设置build.gradle文件以在同步后自动运行插件任务

android - 如何在Android约束布局中使用水平位置的3个 View 支持wrap_content和match_parent条件

android - Flash Builder,为移动设备加载资源

javascript - 如何缩短这个 JavaScript if 语句?

javascript - 有人可以解释一下向对象添加新属性的循环过程吗?

Java 代码效率,存储数据与方法调用