我有我的适配器类getView
方法如下:如何使用listview和复选框?
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.userlist, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.text2 = (TextView) view.findViewById(R.id.stuname);
viewHolder.text = (TextView) view.findViewById(R.id.rollno);
viewHolder.checkbox = (CheckBox) view.findViewById(R.id.cb);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Model element = (Model) viewHolder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
// Toast.makeText(getContext(), "Checked",
// Toast.LENGTH_SHORT).show();
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.text.setText(list.get(position).getName());
holder.text2.setText(list.get(position).getRoll());
holder.checkbox.setChecked(list.get(position).isSelected());
return view;
}
有一个oncheckedchange
听众在这里。
我的问题是如何传递信息,如列表项已更改为我的主要活动?当复选框状态发生变化时,我们还可以在主要活动中执行某些操作?
这工作出色。我使用onClick on xml来调用我主要活动中的onchecked方法,以及onchecked方法中的getTag()方法来检查复选框的状态。 THNX很多! :) – 2013-05-02 14:52:40