1
我想改善列表視圖的性能。Android中的CustomListAdapter問題?獲得ClassCast異常?怎麼樣?
這是我的適配器中的getView方法的代碼?
public View getView(int arg0, View text_view_name, ViewGroup parent) {
try {
if (text_view_name == null) {
text_view_name = mInflater.inflate(
R.layout.bs_content_list_item1, null);
text_view_name.setTag(R.id.text1_detail1, text_view_name
.findViewById(R.id.text1_detail1));
text_view_name.setTag(R.id.text3_detail1, text_view_name
.findViewById(R.id.text3_detail1));
text_view_name.setTag(R.id.eve_img_detail1, text_view_name
.findViewById(R.id.eve_img_detail1));
}
text1 = (TextView) text_view_name.getTag(R.id.text1_detail1);
// text2 = (TextView) text_view_name.getTag(R.id.text2);
text3 = (TextView) text_view_name.getTag(R.id.text3_detail1);
img = (ImageView) text_view_name.getTag(R.id.eve_img_detail1);
text1.setText(VAL1[arg0]);
text3.setText(VAL3[arg0]);
if (!mBusy) {
img_value = new URL(VAL4[arg0]);
mIcon11 = BitmapFactory.decodeStream(img_value.openConnection()
.getInputStream());
img.setImageBitmap(mIcon11);
text_view_name.setTag(R.id.eve_img_detail1, null);
} else {
img.setImageResource(R.drawable.icon);
text_view_name.setTag(R.id.eve_img_detail1, text_view_name
.findViewById(R.id.eve_img_detail1));
}
} catch (Exception e) {
name = "Exception in MultiLine_bar_details1 getView";
Log.v(TAG, name + e);
}
return text_view_name;
}
這是scrollstatechanged方法的代碼:獲取異常在空閒狀態
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
try {
MultiLine_bar_details1.mBusy = false;
int first = view.getFirstVisiblePosition();
int count = view.getCount();
for (int i = 0; i < count; i++) {
ImageView t = (ImageView) view.getChildAt(i);// here getting the ClassCastException
if (t.getTag(R.id.eve_img_detail1) != null) {
MultiLine_bar_details1.img_value = new URL(
MultiLine_bar_details1.VAL4[first + i]);
MultiLine_bar_details1.mIcon11 = BitmapFactory
.decodeStream(MultiLine_bar_details1.img_value
.openConnection().getInputStream());
MultiLine_bar_details1.img.setImageBitmap(MultiLine_bar_details1.mIcon11);
t.setTag(R.id.eve_img_detail1, null);
}
}
} catch (Exception e) {
Log.v(TAG, "Idle" + e);
}
// mStatus.setText("Idle");
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
MultiLine_bar_details1.mBusy = true;
break;
case OnScrollListener.SCROLL_STATE_FLING:
MultiLine_bar_details1.mBusy = true;
break;
}
}
:
05-03 16:47:15.201: VERBOSE/BS_Bars(258): Idlejava.lang.ClassCastException: android.widget.LinearLayout
這是非常複雜,我適當地得到輸出。實際上我有自定義適配器的列表視圖。該圖標使得listview滾動非常緩慢。我從圖像URL獲取圖標圖標。直到這個(上面的代碼)我可以提高我的列表視圖的滾動性能。但圖像圖標在相應的順序中不合適。其動態變化時,我滾動列表視圖..
我提到commonsware busy coder guide和this blog。
編輯: 我非常大的問題是「我們如何才能訪問使用參數AbsListView scrollstatechanged圖像視圖?」
什麼問題呢?如何做得更好?任何想法?
是的。但我怎樣才能把這個圖像視圖? bs_content_list_item1.xml具有列表視圖的內容。 main.xml文件中的主要listview。 – Praveen 2010-05-03 17:49:20