我有一个包含一些复选框的列表,如何找出单击了哪个复选框。我尝试 itemClickListener() 但没有回复我,
问问题
105 次
3 回答
0
创建您自己的 ArrayAdapter 并在您的 getView(...) 方法中实现您的 ckeckbox 侦听器。
getView 为您提供列表中的项目位置,以便您可以做任何您需要的事情。
这是一个如何创建 onw arrayadapter 的示例:
于 2013-08-05T12:21:53.407 回答
0
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
LayoutInflater inflater = MyPINsActivity.this
.getLayoutInflater();
view = inflater.inflate(R.layout.row_list_mypins, null);
} else {
view = convertView;
}
final CheckBox cb = (CheckBox) view.findViewById(R.id.cb);
//here you can save the position as tag to CheckBox, and get where you want
cb.setTag(position);
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
//get the positon of CheckBox by using mCheckBox.getTag()
String positon = cb.getTag().toString();
Log.e(TAG, "positon: "+positon);
}
}
});
}
于 2013-08-05T12:35:34.793 回答
0
为此,您通过扩展BaseAdapter类创建自己的适配器,然后在该适配器的 getview() 方法中膨胀布局并获取复选框并为此编写侦听器。
于 2013-08-05T12:44:57.593 回答