簡體   English   中英

在Android中高效處理動態列表視圖項

[英]Processing dynamic list view items efficiently in Android

在我的應用程序中,我有一個名為“聯系人”的按鈕,該按鈕允許用戶選擇要添加到他或她的朋友列表中的聯系人。 單擊該用戶時,將顯示該用戶所有聯系人的列表視圖。 每個列表視圖行都包含聯系人顯示名稱,圖標,電子郵件地址和一個按鈕。 名稱,圖標和電子郵件都使用ContactsContract類獲取。

我遇到的問題是處理所有用戶的聯系人在計算上非常昂貴。

我嘗試了兩種解決方案:

  1. CursorAdapter ,我嘗試修改bindView方法。 我傳入一個查詢用戶聯系人的游標,然后在bindView方法中,我對服務器執行了異步調用,以將聯系人的關系返回給當前用戶。 即,如果聯系人已安裝該應用程序並且是朋友,則該按鈕將顯示“刪除”。 該調用將確定按鈕類型並設置適當的onClickListeners

    • 這行不通,因為這會使列表非常緩慢,不平滑並且感覺非常緩慢。
  2. 我只是嘗試在一些不同的線程中加載聯系人和服務器查詢。 完成加載后,我將使用在不同線程中已經確定的名稱,圖標,電子郵件和按鈕類型來初始化BaseAdapter

    • 這沒有用,因為加載聯系人需要30到40秒。 但是,一旦完成加載,它會變得更加流暢。

如何解決此問題?

我應該先從服務器獲取數據還是為適配器中的每個項目預加載數據?

編輯:

布局看起來類似於

尋找朋友的布局

我要做的是加載聯系人和遠程數據,創建一個自定義類來保存它們,將其放在ArrayList<MyCustomContactClass> ,直到准備就緒后,我才將適配器加載到listview中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM