gpt4 book ai didi

java - 从包含对象作为值的哈希表创建 listView 适配器

转载 作者:行者123 更新时间:2023-12-01 09:16:30 25 4
gpt4 key购买 nike

我是 android 和 java 的新手我有一个包含值的哈希表。值是对象(具有 3 个属性 code、title、state 的任务类)

我正在尝试获取哈希表中所有任务的数据并在 ListView 中显示它们

ListView list = (ListView)findViewById(R.id.output_list);

ArrayList<task> arr = new ArrayList<task>(tasklist.values());

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.list, arr );

list.setAdapter(arrayAdapter);

tasklist 是哈希表名称

task是一个实体类

public class taskDAO {
public static final Hashtable<Integer , task> tasklist = new Hashtable<Integer , task>();

public static final boolean addTask (task t){

tasklist.put(t.code,t);
return true;

}

异常

E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView

我尝试了很多东西,但由于我不明白这是如何工作的,所以我无法弄清楚一个办法,有什么帮助吗?

最佳答案

您的错误告诉您适配器的第二个参数需要是 TextView 布局,而不是 ListView 布局(或 list.xml 文件包含的任何内容)

如果您在 task 类上实现 toString 方法(由于 Java 命名约定,您应该将其重命名为 Task)。

然后,您将在使用时看到数据

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
arr);

有关该布局的更多详细信息,请参阅 What is "android.R.layout.simple_list_item_1"?

关于java - 从包含对象作为值的哈希表创建 listView 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40513297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com