gpt4 book ai didi

android - 如何指定 ArrayAdapter 的哪个字符串用于 ListFragment?

转载 作者:行者123 更新时间:2023-11-30 03:47:28 26 4
gpt4 key购买 nike

我有一个简单的 ListFragment 来显示自定义对象列表。

MyListFragment extends ListFragment

private ArrayList<CustomObject> mArrayOfCustomObject;
private ArrayAdapter<CustomObject> mAdapter;

mAdapter = new ArrayAdapter<CustomObject>(context,
android.R.layout.simple_list_item1,
mArrayOfCustomObject);
setListAdapter(mAdapter);

问题是我得到一个看起来像这样的长列表:

com.example.CustomObject@40XXXXXX
com.example.CustomObject@40XXXXXX
com.example.CustomObject@40XXXXXX
com.example.CustomObject@40XXXXXX
....

我这样做是因为我希望能够单击某个项目并显示有关它的更多信息。这就是我将适配器链接到 List<CustomObject> 的原因而不是 List<String> .

我知道一个List<String>会正确显示它,但随后每个项目将只是一个随机字符串,与其 CustomObject 无关。

解决这个问题的最佳方法是什么?

最佳答案

除了创建您自己的自定义适配器之外,为了轻松修复,只需重写 CustomObject 中的 toString() 方法并让它返回可读的内容。当您使用的适配器填充其行时,它会在您的 CustomObject 上调用 toString(),然后显示该结果。

假设您的 CustomObject 中有一个名为 timePassed 的字段

long timePassed = 100000l;
@Override
public String toString()
{
return "Time passed: " + timePassed + " milliseconds";
}

关于android - 如何指定 ArrayAdapter 的哪个字符串用于 ListFragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743136/

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