我有一個非常簡單的Activity來擴展ListActivity。 我重寫方法onListItemClick執行一些自定義操作。Android ListActivity onListItemClick調用適配器getView
我在日誌中看到的是,我點擊一個列表項目(爲了讓我的列表由自定義視圖組成),我們調用了適配器方法getView
。
現在,我想知道這是否是正確的行爲。如果是我可能有問題。
問題是我的列表項有圖像,這些圖像是從網頁中提取的,當我點擊列表項時,對適配器的調用會導致對Web的調用刷新列表中的圖像並將它們混淆起來原因。
任何人都可以遮光嗎?
這是我getView
:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ContentListItemView cv = null;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(this.context);
convertView = (RelativeLayout) inflater.inflate(this.layout, null);
cv = new ContentListItemView(convertView);
} else {
cv = (ContentListItemView) convertView.getTag();
}
Log.d(this.getClass().getSimpleName(), "position: " + position);
cv.init(getItem(position));
convertView.setTag(cv);
return convertView;
}
,這是我OnListItemClick
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Log.d(this.getClass().getSimpleName(), position + " " + id);
Intent contentDetailsIntent = new Intent(this, ContentDetailsActivity.class);
contentDetailsIntent.putExtra("com.tamtamy.jatta.content_list_item_selected", position);
contentDetailsIntent.putExtra("com.tamtamy.jatta.datasource", ContentDetailsActivity.CONTENT_LIST);
contentDetailsIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(contentDetailsIntent);
}
適配器是一個對象。對象不被調用。方法被調用。我建議你修改你的問題來修正你的「適配器被調用」語句,對你的適配器上調用的方法是絕對正確的。 – CommonsWare 2011-02-16 23:36:11