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