我正在使用SimpleCursorAdapter來填充ListView與我的數據庫中的項目。當用戶點擊一個項目時,它會將它們帶到該項目的詳細Activity。顯示該頁面的最佳做法是什麼?只需編寫一個顯示函數來抓取我想要設置文本的所有TextView並從數據庫填充它們或使用另一個SimpleCursorAdapter來設置TextViews?如果答案是使用適配器,我是否必須在ListView中推送詳細信息頁面?這樣做的使用適配器的非列表視圖
回答
我相信最好的方法是在列表活動中提取一些id並將該id(在intent中)傳遞給detail Activity。
如果沒有那麼多的數據,你可以發送意圖的額外內容。問題在於意圖的目的不是將複雜的數據(大量的數據)從一個活動發送到另一個活動。
在詳細活動中,您可以從數據庫中獲取數據(例如:select * from people where id = 123
)。現在您可以將該表的列映射到一個簡單的對象。
例如:
public class Person {
String name;
Integer age;
String address;
}
最後一步,以顯示數據到用戶,抓住從佈局一些textviews並設置它們的文字與你的人從數據庫中得到你的價值觀。
TextView ageTv = (TextView)findViewById(R.id.age);
ageTv.setText(person.age + " years old");
//etc
沒有必要在細節活動
幾個方面:
- 項偵聽器,只需裝到ListView和內,調用一個新的意圖,並通過它的一些數據(少量數據的最好)。
- 或者你可以在詳細的活動列表視圖中創建另一個適配器,這也將使用一個簡單的遊標適配器來從你的sqlite數據庫中提取細節。 (更多數據)
這實際上取決於你正試圖解決的問題。 SimpleCursorAdapter不是來自於數組邏輯,還是來自數組邏輯,對於所有設置的整潔解決方案,獲取內容?
SimpleCursorAdapter是一個很好的解決方案,我只是想知道是不是奇怪的事推動不列表到ListViews讓它工作。 – 2011-01-28 19:02:28
傑森
您有沒有必要在這種情況下使用適配器使用一個ListView,它是更爲複雜和資源比必要密集。列表視圖帶來很多的副作用,他們包括沿着但不限於:
- 聽衆的滾動和觸摸事件
- 小視圖對象的許多行,帶走可用內存
- 如果你不回收那些行中,然後被從磁盤讀取和多次重新充氣
- 幾個重複調用兒童onMeasure繪製視圖層次和估計ListView的大小時()
通過不恰當地使用ListView
和Adapter
範例,基本上你正在浪費內存和cpu時間。所有你需要的是一個Cursor
爲你的數據,TextViews
來顯示它,一個ScrollView
和(LinearLayout
|| RelativeLayout
)來保存TextView
s將滾動,如果他們太大,不適合在屏幕上一次。
- 1. 列表視圖適配器
- 2. 圖片列表視圖適配器
- 3. 使用數組列表適配器設計Android列表視圖
- 4. 帶適配器的列表視圖android
- 5. 顯示列表視圖的適配器
- 6. Android中的列表視圖適配器
- 7. 微調適配器和列表視圖適配器
- 8. 按鈕在列表視圖適配器
- 9. 自定義適配器列表視圖
- 10. 列表視圖過濾和適配器
- 11. 從適配器刷新列表視圖
- 12. 綁定適配器到列表視圖
- 13. 列表視圖和適配器傻瓜
- 14. 列表視圖自定義適配器
- 15. Android:自定義列表視圖,適配器中的表視圖
- 16. 用於顯示json的列表視圖和列表適配器
- 17. 在列表視圖適配器使用過濾器膨脹
- 18. 填充使用simplecursor適配器的列表視圖
- 19. 使用動態適配器的動態列表視圖
- 20. 適用於具有非TextView視圖的ExpandableListView的適配器?
- 21. 在列表視圖中使用行更多視圖陣列適配器
- 22. 使回收器視圖適配器中的HashMap類型列表
- 23. 使用自定義列表視圖適配器
- 24. 在適配器中使用查詢列表視圖
- 25. 無法在列表視圖中使用基本適配器
- 26. 與卡片視圖使用火力地堡列表適配器
- 27. 使用自定義適配器搜索列表視圖
- 28. 使用適配器在列表視圖內填充ListView
- 29. 使用陣列適配器從列表視圖中檢索parse.com中的圖像
- 30. 在列表視圖中的addTextChangedListener使用自定義列表適配器
好的,那是我目前正在做的。我只是想知道這種風格是否在這種情況下使用適配器。 – 2011-01-31 22:31:43