Android listview里面包含checkbox
来源:互联网 发布:男士护肤品推荐 知乎 编辑:程序博客网 时间:2024/06/05 10:51
如果一个listview中包涵checkbox,比如购物车。要是去点击每个商品前面的checkbox的话比较难以点击,有时候设置成点击item就相当于点击了checkbox.
代码如下
public class MainActivity extends Activity {List<String> beanList;private ListViewAdapter adapter;private ListView lv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.lv);beanList = new ArrayList<String>();for (int i = 0; i < 10; i++) {beanList.add("text" + i);}adapter = new ListViewAdapter(this);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {/** * arg0 可以理解为整个listiew 布局 * arg1 当前点击项 布局 * arg2 position * arg3 id */@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubRelativeLayout view1 = (RelativeLayout) arg1;CheckBox cb = (CheckBox) view1.getChildAt(0); TextView tv= (TextView) view1.getChildAt(2);Toast t= new Toast(MainActivity.this);Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show();cb.setChecked(!cb.isChecked());adapter.isSelected.set(arg2, cb.isChecked());}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private final class ListViewHolder {public CheckBox check_goods;public ImageView imageViewIcon;public TextView title;public RelativeLayout groubuyitem;}private class ListViewAdapter extends BaseAdapter {// 用来控制CheckBox的选中状况public ArrayList<Boolean> isSelected;private LayoutInflater mInflater;private Context mContext;public ListViewAdapter(Context ctx) {this.mContext = ctx;this.mInflater = LayoutInflater.from(ctx);isSelected = new ArrayList<Boolean>();initDate();}// 初始化isSelected的数据private void initDate() {for (int i = 0; i < beanList.size(); i++) {isSelected.add(i, false);}}@Overridepublic int getCount() {// TODO Auto-generated method stubif (beanList == null) {return 0;}return beanList.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn beanList.get(arg0);}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic View getView(final int position, View convertView, ViewGroup arg2) {ListViewHolder viewHolder;if (convertView == null) {viewHolder = new ListViewHolder();convertView = mInflater.inflate(R.layout.item_groupbuy_shopcart, null);viewHolder.check_goods = (CheckBox) convertView.findViewById(R.id.check_goods);viewHolder.imageViewIcon = (ImageView) convertView.findViewById(R.id.img);viewHolder.title = (TextView) convertView.findViewById(R.id.title);viewHolder.groubuyitem = (RelativeLayout) convertView.findViewById(R.id.groubuyitem);convertView.setTag(viewHolder);} else {viewHolder = (ListViewHolder) convertView.getTag();}final int p = position;//viewHolder.groubuyitem//.setOnClickListener(new View.OnClickListener() {//@Override//public void onClick(View v) {////RelativeLayout view1 = (RelativeLayout) v;//CheckBox cb = (CheckBox) view1.getChildAt(0);//cb.setChecked(!cb.isChecked());//isSelected.set(p, cb.isChecked());////}//});viewHolder.title.setText(beanList.get(position));// 根据isSelected来设置checkbox的选中状况viewHolder.check_goods.setChecked(isSelected.get(position));viewHolder.check_goods.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubCheckBox cb = (CheckBox) v;isSelected.set(p, cb.isChecked());}});return convertView;}}}
主要代码在于onItemClick里面。
/**
* arg0 可以理解为整个listiew 布局
* arg1 当前点击项 布局
* arg2 position
* arg3 id
*/
关于getChildAt(0)查看官网的说明:
ViewgetChildAt(int index)Returns the view at the specified position in the group.
看的不是明白:对应我的layout的话,checkbox是0,image是1,textview 是2.
0 0
- Android listview里面包含checkbox
- android listView的每一行里面 有checkbox
- Android里ListView里面添加CheckBox实现多选。
- Android里ListView里面添加CheckBox实现单选。
- android ListView包含Checkbox滑动时状态改变
- 关于listview里面包含edittext。
- android listview checkbox
- Android ListView与CheckBox
- listview菜单(包含checkbox和dial…
- listview中包含checkbox抢夺焦点问题
- 解决Android中Listview条目里面有checkbox、radiobutton无法响应条目点击事件
- Android开发ListView中包含CheckBox(点击item选中CheckBox),并设置其全选反选等功能
- Android中ListView包含CheckBox时滑动丢失选中状态的解决
- Android中ListView包含CheckBox时滑动丢失选中状态的解决
- Android中ListView包含CheckBox时滑动丢失选中状态的解决
- android ListView包含CheckBox时滑动丢失选中状态的解决
- Android中ListView包含CheckBox时滑动丢失选中状态的解决
- AndroidのListView包含CheckBox时滑动丢失选中状态的解决
- 以后在CSDN落个户,开始写自己的科研笔记。
- tortoisesvn 版本控制文件图标解读
- Maven实战 -- 目录
- 进程退出
- [leetcode] 35.Search Insert Position
- Android listview里面包含checkbox
- [c]poj1007
- redis综合mark
- Atlassian JIRA 插件开发(三)——常见问题
- 领域特定语言 martin fowler著 学习笔记1
- GitHub使用详解
- Android Studio安装Genymotion插件
- 在linux和windows上安装qt及creator
- linux 笔记 --- tar命令