[英]How do I specify which string of an ArrayAdapter to use for a ListFragment?
我有一個簡單的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
,只需重寫CustomObject
的toString()
方法並使其返回可讀的內容即可。 當您使用的適配器填充其行時,它將在CustomObject上調用toString()
,然后顯示該結果。
假設您的CustomObject
有一個名為timePassed
的字段
long timePassed = 100000l;
@Override
public String toString()
{
return "Time passed: " + timePassed + " milliseconds";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.