0

我有我的适配器类,getView方法如下:

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听众。

我的问题是如何将诸如哪个列表项更改为我的主要活动之类的信息?此外,当复选框状态发生变化时,我们如何在主要活动中执行一些操作?

4

2 回答 2

1

你可以检查这个例子

http://appfulcrum.com/2010/09/12/listview-example-3-simple-multiple-selection-checkboxes/

这有如何在列表视图中使用选择复选框并处理点击操作

您可能还会发现这对如何制作复选框等可点击区域很有帮助,因为列表视图实际上不允许您直接检查复选框本身

http://wiresareobsolete.com/wordpress/2011/08/clickable-zones-in-listview-items/

于 2013-05-02T13:47:54.837 回答
1

一种想法是调用CheckBox.setTag(),用您想要保存的数据对其进行标记,并让onCheckedChange侦听器使用它CheckBox.getTag()来检索数据。您甚至可以onClick通过 XML 做到这一点。

于 2013-05-02T14:05:03.287 回答