我有一个简单的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没有任何关联。
解决这个问题的最佳方法是什么?
答案 0 :(得分:1)
除了创建自己的自定义适配器之外,为了便于修复,只需覆盖toString()
中的CustomObject
方法,并让它返回可读的内容。当您使用的适配器填充其行时,它会在您的CustomObject上调用toString()
,然后显示该结果。
假设您的CustomObject
中有一个名为timePassed
long timePassed = 100000l;
@Override
public String toString()
{
return "Time passed: " + timePassed + " milliseconds";
}