為listview的item中的元素設置onclick事件


表達能力比較差,所以現在解釋一下標題的意思:
listview的列表項,點擊的時候觸發的是itemOnClick事件,點擊后轉向到A頁;那么,假如在子項中有一個連接是想轉到B頁,我們該怎么辦呢。這樣能明白了吧,好,現在我說一下解決的辦法:
有兩種辦法,一種是重寫adapter,一種是在你的子項中的元素中設置onclick事件(注意,是在xml中設置onclick元素)
我只做了第一種方法,演示如下:
我們繼承adapter的基類,然后重寫getView

@SuppressWarnings("unchecked")
public View getView(int position, View convertView, ViewGroup parent) {


convertView = mInflater.inflate(this.resource, null);

Map item = data.get(position);

int count = to.length;

for (int i = 0; i < count; i++) {

View v = convertView.findViewById(to);


bindView(v, item, from);

}
//下面的幾行是亮點

View avatar = convertView.findViewById(R.id.row_avatar);//獲取你要點擊的組件

if (null != avatar) {//判斷一下,省得出現什么錯誤

avatar.setTag(item);//我們可以利用setTag來存儲數據,傳給觸發事件

avatar.setOnClickListener(avatarClickListener);//觸發事件代碼往下看

}

return convertView;

}


//這個就是觸發的事件,根據自己的要求寫
private OnClickListener avatarClickListener = new OnClickListener() {


@SuppressWarnings("unchecked")

public void onClick(View v) {

Map item = (Map) v.getTag();//還記得上面的那個setTag么?我們在這里給丫取出來

Intent mIntent = new Intent(AdapterWithHashMap.this.context,

MySelf.class);

mIntent.putExtra("user_id", item.get("uid").toString());


AdapterWithHashMap.this.context.startActivity(mIntent);

}

};

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM