Android ListView 子控件(Button)获取索引值

来源:互联网 发布:策划程序美工音效 编辑:程序博客网 时间:2024/05/22 05:12

  最近在做电视管家的一个android应用,碰到一个问题,就是说,界面是一个listView,listView里面一有个button,点击button要获取当前item中对应的下载地址,这些下载地址都存放到map(Map<Integer,String> installMap = new HashMap<Integer,String>();)中了,只能获取当前item的postion,才能installMap.get(postion),得到对应的value,起先困扰了许久,不知如何是好,所以无奈之下去网上查了一下,也还是拨的乌云见青天,看到了曙光。

在 listView添加adpter的getView中,给button设置一个setTag属性,这个属性参数就是当前item的postion

private class MyAdapter extends BaseAdapter implements OnClickListener{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = mInflater.inflate(R.layout.application_operating_item, null);
Button btn_install = (Button)view.findViewById(R.id.btn_operating);
btn_install.setTag(position);
btn_install.setText(R.string.btn_install);
btn_install.setOnClickListener(this);

return view;
}
.

在调用Button的地方,就可以通过getTag()来获取该listView的索引position,如此便能很好地取得理想的效果。
public void onClick(View v) {
switch(v.getId()) {
case R.id.btn_operating:
final int index = (Integer)v.getTag();
String installApkPath = installMap.get(index);
MessageControl.installApk(installApkPath,2);
break;
}

原创粉丝点击