表達能力比較差,所以現在解釋一下標題的意思:
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);
}
};
