我需要在listview(android)中維護3000個列表項,但繼續滾動會出錯。爲了管理這個,我打算在加載列表視圖時顯示進度對話框。如何啓用進度條,同時在Android中加載自定義列表視圖
請教我如何在android中做到這一點。
我需要在listview(android)中維護3000個列表項,但繼續滾動會出錯。爲了管理這個,我打算在加載列表視圖時顯示進度對話框。如何啓用進度條,同時在Android中加載自定義列表視圖
請教我如何在android中做到這一點。
您可以使用lazylist爲您的問題在這裏link檢查它。你可以找到你的解決方案。您可以使用異步任務,但整個3000項目將立即加載。如果您使用LazyList,那麼您將首先加載幾件物品,並且當您向下滾動時,更多物品將被添加到您的列表中。
ListView本身是一個神話般的組件,可用於呈現記錄中的數字。 *有相同觀點的循環周而復始,從而避免內存泄漏和高效的管理*
您必須使用: 懶列表圖像和視圖持有人必須是管理重新可用性有效管理的意見。
回收概念:
每當ListView控件需要在屏幕上顯示一個新行,它會調用其適配器getView()方法。如您所知,getView()接受三個參數參數:行位置,convertView和父ViewGroup。
convertView參數本質上是一個「ScrapView」。當ListView要求您循環使用行佈局時,它將具有非空值。所以,當convertView不爲null時,你應該簡單地更新它的內容而不是膨脹一個新的行佈局。在適配器中的getView()的代碼看起來有點像:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.your_layout, null);
}
TextView text = (TextView) convertView.findViewById(R.id.text);
text.setText("Position " + position);
return convertView;
}
查看持有人模式 查找內部視圖內膨脹的佈局是在Android上最常用的操作之一。這通常通過名爲findViewById()的View方法完成。該方法將遞歸地遍歷視圖樹,尋找具有給定ID碼的孩子。在靜態UI佈局上使用findViewById()是完全正確的,但正如您所見,ListView在滾動時非常頻繁地調用適配器的getView()。 findViewById()可能會在ListViews中顯示滾動性能 - 特別是如果你的行佈局不平凡的話。
觀持有人格局即將減少()調用適配器的getView()findViewById的數量。在實踐中,視圖持有者是一個輕量級的內部類,可以直接引用所有內部視圖。您在充氣後將其作爲標記存儲在行視圖中。這樣,您只需在首次創建佈局時使用findViewById()。以下是應用了View Holder模式的代碼示例:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.your_layout, null);
holder = new ViewHolder();
holder.textView01 = (TextView) convertView.findViewById(R.id.text);
convertView.setTag(holder);
} else {
holder = convertView.getTag();
}
holder.textView01.setText("Position " + position);
return convertView;
}
private static class ViewHolder {
public TextView textView01;
}
您以前沒有使用過異步任務嗎?你只需要表現出onPreExcute(進度對話框),並在doInBackground()獲取的3000個項目,最後駁回()在onPOST等 – 2013-02-18 06:46:10
對話框喜用的AsyncTask和數據是在我的本地數據庫已經上市,但滾動4時-5次不斷導致錯誤。 – Dhamodharan 2013-02-18 06:50:45
除了使用LazyList的圖像,你應該使用視圖架.. – 2013-02-18 06:51:54