Android--listview中每個item有多個控制元件的點選方法
阿新 • • 發佈:2019-02-08
有時候listview中item是由多個控制元件組成的,如果要分別獲取每個元件的點選事件,需要在adapter中getview方法中位每個控制元件設定tag,tag值為position,然後在onclick方法中判斷tag即可;示例如下:
//為元件設定tag,方面判斷點選的position
tv_market_homepage_category.setTag(position);
tv_market_homepage_product1.setTag(position);
tv_market_homepage_product2.setTag(position);
tv_market_homepage_category.setOnClickListener(this);
tv_market_homepage_product1.setOnClickListener(this);
tv_market_homepage_product2.setOnClickListener(this);
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_market_homepage_category:
num =Integer.parseInt(v.getTag().toString());
break;
case R.id.tv_market_homepage_product1:
num =Integer.parseInt(v.getTag().toString());
break;
case R.id.tv_market_homepage_product2:
num =Integer.parseInt(v.getTag().toString());
break;
}
}
上面那部分程式碼是getview方法裡的一部分,三個textview分別設定tag,然後在onclick方法中判斷即可;
ps:如果為item中控制元件設定了clicklistener,那麼會遮蔽listview的onItemClickListener()方法