[英]Processing dynamic list view items efficiently in Android
在我的應用程序中,我有一個名為“聯系人”的按鈕,該按鈕允許用戶選擇要添加到他或她的朋友列表中的聯系人。 單擊該用戶時,將顯示該用戶所有聯系人的列表視圖。 每個列表視圖行都包含聯系人顯示名稱,圖標,電子郵件地址和一個按鈕。 名稱,圖標和電子郵件都使用ContactsContract
類獲取。
我遇到的問題是處理所有用戶的聯系人在計算上非常昂貴。
我嘗試了兩種解決方案:
在CursorAdapter
,我嘗試修改bindView
方法。 我傳入一個查詢用戶聯系人的游標,然后在bindView
方法中,我對服務器執行了異步調用,以將聯系人的關系返回給當前用戶。 即,如果聯系人已安裝該應用程序並且是朋友,則該按鈕將顯示“刪除”。 該調用將確定按鈕類型並設置適當的onClickListeners
。
我只是嘗試在一些不同的線程中加載聯系人和服務器查詢。 完成加載后,我將使用在不同線程中已經確定的名稱,圖標,電子郵件和按鈕類型來初始化BaseAdapter
。
如何解決此問題?
我應該先從服務器獲取數據還是為適配器中的每個項目預加載數據?
編輯:
布局看起來類似於 :
我要做的是加載聯系人和遠程數據,創建一個自定義類來保存它們,將其放在ArrayList<MyCustomContactClass>
,直到准備就緒后,我才將適配器加載到listview中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.