1

我有一个简单的 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
....

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

我知道 aList<String>会正确显示它,但是每个项目都只是一个随机字符串,与它的 CustomObject 没有任何联系。

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

4

1 回答 1

1

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

假设您在CustomObject被调用中有一个字段timePassed

long timePassed = 100000l;
@Override
  public String toString()
  {
    return "Time passed: " + timePassed + " milliseconds";
  }
于 2013-02-07T03:44:13.430 回答