我有一個類有幾個字段,只是我想顯示在ListView定製ListAdapter不顯示所有字段
class FOO {
String f1;
String f2;
String f3;
};
FOO foo = new FOO;
FOO [] fooArray = new FOO[5];
我使用的是標準的ArrayAdapter顯示此人之一,並加入foo.f1爲要在ListView中顯示的字段。我當然可以對foo.f1進行排序。我現在需要能夠對foo.f2或foo.f3進行排序。我可以構建一個將foo作爲其元素的自定義ArrayAdapter,但只能顯示foo.f1。然後我可以訪問foo.f2和foo.f3,並可以對這些字段進行排序。有沒有更簡單的方法來做到這一點,而不必創建一個自定義的ArrayAdapter?
foo元素數組可以在ArrayAdapter之外使用,我可以對它進行排序,從ArrayAdapter中刪除所有元素,然後以新的排序方式重新添加它們,但是我想使用sort函數的ArrayAdapter。
任何指針都歡迎。
如果ArrayAdapter是一個FOO類型的數組,但是它是一個字符串數組,並且通過循環myListAdapter.add(fooArray [i] .f1)添加到適配器,則這將工作。如果我想讓ArrayAdapter成爲FOO類型的數組,但只想顯示FOO.f1,那麼我不必構建自定義的ArrayAdapter,以便知道如何顯示其項目?我只想顯示FOO.f1,而不管我用於排序的字段。 –
爲什麼不製作FOO的陣列適配器呢?您可以繼承ArrayAdapter,覆蓋getView並僅顯示f1字段。 ArrayAdapter myAdapter =新ArrayAdapter (){... 或者,你可能會離開ArrayAdapter,因爲它是和覆蓋FOO的toString返回F1價值 –
Eugene
重寫FOO的toString是要走的最簡單的方法,謝謝您的建議。 –