带有复选框的Android列表视图? [英] Android listview with check boxes?

查看:35
本文介绍了带有复选框的Android列表视图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个使用带有复选框的列表视图的应用程序,考虑在 list-view 项目上有 10 个项目,默认情况下,复选框是检查,直到现在一切对我来说都很好,这是我的问题,当我取消选中列表视图中的任何复选框整个列表视图需要刷新.

I am developing an application which uses list view with check-boxes,consider there are 10 items on list-view items,And by default in that check boxes are checked,Until now every thing is working fine for me here is my problem,When I uncheck any check-box in list-view whole list-view need to be refresh.

推荐答案

Nikhil 请记住,定义自定义适配器是一次性练习,一旦您正确定义和理解它,您就可以自定义任何视图,如 ListView、GridView、Gallery、Spinner.所以请正确阅读以下答案.

Nikhil just keep in mind that defining a custom adapter is one time practice, once you define and understand it properly then you can customize any views like ListView, GridView, Gallery, Spinner. So go through the below answer properly.

要使用 CheckBox(或任何 View)定义 ListView,您必须定义自己的自定义适配器.要定义自定义适配器,请按照以下步骤操作:

For defining ListView with CheckBox (or any View), you have to define your own custom adapter. For defining custom adapter, follow below steps:

  1. 定义自定义行文件(代表列表视图的每个项目)
  2. 定义一个适配器类并扩展 BaseAdapter.
  3. 在该适配器类的 getView() 方法中扩充上述行 xml 文件.

就你而言,

<RelativeLayout>
   <TextView>
   <CheckBox>
</RelativeLayout>

第二&第三步:(定义自定义适配器类)

public class MyListViewAdapter extends BaseAdapter
{
  ....
  ....


   static class ViewHolder {
        protected TextView text;
        protected CheckBox checkbox;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = null;
        if (convertView == null) {
            LayoutInflater inflator = context.getLayoutInflater();
            view = inflator.inflate(R.layout.rowbuttonlayout, null);
            final ViewHolder viewHolder = new ViewHolder();
            viewHolder.text = (TextView) view.findViewById(R.id.label);
            viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check);
            viewHolder.checkbox
                    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                        @Override
                        public void onCheckedChanged(CompoundButton buttonView,
                                boolean isChecked) {
                            Model element = (Model) viewHolder.checkbox
                                    .getTag();
                            element.setSelected(buttonView.isChecked());

                        }
                    });
            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.checkbox.setChecked(list.get(position).isSelected());


.......
.......
}

这篇关于带有复选框的Android列表视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆