如何在单击项目时检查ListView的复选框?
我有一个带有复选框、文本视图、按钮的列表视图。
这里我想选择ListView的多行,所以使用了CheckBox。如果我点击一行,我想让它对应的CheckBox被选中并获取ListView中被点击项目的RowID。
如果我单击按钮,我想打开一个弹出窗口或另一个屏幕(活动),但不得选中复选框。
这个怎么做?请帮忙。
提前致谢。
Edit:
这就是我的布局的样子。
使用 ListView 的适配器代码很简单。
public class Adapter extends BaseAdapter{
private Context context;
Button btnView;
CheckBox box;
ArrayList<String> altextView1;
ArrayList<String> altextView2;
public Adapter(Context c, Button view, CheckBox checkBox, ArrayList<String> textView1, ArrayList<String> textView2) {
this.context=c;
this.btnView=view;
this.box=checkBox;
this.altextView1=textView1;
this.altextView2=textView2;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return altextView1.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
View view=arg1;
view=LayoutInflater.from(context).inflate(R.layout.list7, null);
TextView tv1=(TextView)view.findViewById(R.id.tV1);
TextView tv2=(TextView)view.findViewById(R.id.tV2);
btnView=(Button)findViewById(R.id.btnView);
box=(CheckBox)findViewById(R.id.cB);
tv1.setText(altextView1.get(arg0));
tv2.setText(altextView2.get(arg0));
return view;
}
}
将复选框对象设置为行视图的标记,该行视图可能是适配器的 getView() 方法中的“convertView”。
在行视图上编写点击侦听器。
在该单击侦听器内,从视图中获取行视图 getTag,该视图是 onClick 方法中的参数,并将其转换为复选框,然后将该复选框对象的 setChecked 设置为 true。
代码可能看起来像这样,
convertView.setTag(yourCheckBoxObject);
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) v.getTag();
cb.setChecked(true);
}
});
您需要按照这个线程来学习它..只需阅读整个线程并尝试理解然后实现..这是您可以获得的最好帮助。通过列表视图检查动态生成的复选框时遇到问题 https://stackoverflow.com/questions/7738527/getting-an-issue-while-checking-the-dynamically-generated-checkbox-through-list/7738854#7738854
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)