ListView 单选效果

来源:互联网 发布:布里塔尼亚帝国 知乎 编辑:程序博客网 时间:2024/05/08 14:23

一个非常不错的简单的ListView单选效果实例,可参考!
1)RadioButton实现单选按钮
2)点击的时候,给一个posistion,然后主动调用notifyDataSetChanged时候在getView方法中对比posistion来处理对应的控件。

主要实现代码:

 mListView.setAdapter(myAdapter);        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //获取选中的参数                **selectPosition = position;                myAdapter.notifyDataSetChanged();                selectBrand = namesList.get(position);**                Toast.makeText(MainActivity.this,"您选中的手机品牌是:"+selectBrand.getBandname(),Toast.LENGTH_SHORT).show();            }        });    }    public class MyAdapter extends BaseAdapter{        Context context;        List<Brand> brandsList;        LayoutInflater mInflater;        public MyAdapter(Context context,List<Brand> mList){            this.context = context;            this.brandsList = mList;            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        }        @Override        public int getCount() {            return brandsList.size();        }        @Override        public Object getItem(int position) {            return position;        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            ViewHolder viewHolder = null;            if(convertView == null){                convertView = mInflater.inflate(R.layout.adapter_item,parent,false);                viewHolder = new ViewHolder();                viewHolder.name = (TextView)convertView.findViewById(R.id.id_name);                viewHolder.select = (RadioButton)convertView.findViewById(R.id.id_select);                convertView.setTag(viewHolder);            }else{                viewHolder = (ViewHolder)convertView.getTag();            }            viewHolder.name.setText(brandsList.get(position).getBandname());            **if(selectPosition == position){                viewHolder.select.setChecked(true);            }            else{                viewHolder.select.setChecked(false);            }**            return convertView;        }    }

实例源码下载地址: http://download.csdn.net/detail/itjavawfc/9760148

0 0