我有我的適配器類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