如何绑定Listview和checkbox? 我想实现的是,单击checkbox的时候,获得checkbox所在行的那个item的值。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我理解你的意思,我之前做过一个用到这个的应用,里面用的方法是ArrayList<HashMap<String,String>>存储checkbox和item的对应关系,单击checkbox的时候根据对应关系查询被选中的item,然后知道item号就可以获得item中的值。 这个重写BaseAdapter就可以了,很好实现的,数据就用ArrayList<E>,一般来说都是将数据封装成对象,贴上部分代码,全部代码在博客里http://blog.csdn.net/cuihao1128/article/details/7668161package cn.com.sligner.listCheckBox;import android.widget.CompoundButton;public interface OnItemCheckedChanged {public void onItemCheckedChanged(CompoundButton view,int position, boolean isChecked);}package cn.com.sligner.listCheckBox;import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.TextView;import android.widget.CompoundButton.OnCheckedChangeListener;public class ListAdapter extends BaseAdapter{private Context mContext;private ArrayList<Student> list;private OnItemCheckedChanged onItemCheckedChangedListener;public void setOnItemCheckedChangedListener( OnItemCheckedChanged onItemCheckedChangedListener) { this.onItemCheckedChangedListener = onItemCheckedChangedListener;}public ListAdapter(Context mContext, ArrayList<Student> list){ super(); this.mContext = mContext; this.list = list;} @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, final View convertView, ViewGroup parent) { View view; if(convertView != null){ view = convertView; }else{ LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.listitem, null, false); } TextView text = (TextView)view.findViewById(R.id.itemtext); text.setText(list.get(position).getName()); CheckBox checkBox = (CheckBox)view.findViewById(R.id.itemcheck); checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { onItemCheckedChangedListener.onItemCheckedChanged(buttonView, position, isChecked); } }); return view; }} 1、继承BaseAdapter,写一个自定义Adapter。2、绘制checkBox时添加监听3、注意添加这个属性android:descendantFocusability="blocksDescendants" 百思不得其解!奇怪的==和!= 如何停止线程 哪个Android手机好些 大家好,为为什么我的安卓手机无法连接ibss的无线网卡 手机端和服务器之间的通信 请教,有没有办法不区别手机和sim卡将通讯录一块取出来,兼容1.5-2.2 如何用代码控制截图,手机端和pc端都可以 在android中如何删除一个已经创建的数据库??? 安卓如何开发淘宝app? android mvp模式中一个activity对应多个presenter怎么写 pdf阅读器界面显示部分问题 android sdk setOnClickListener()问题
public void onItemCheckedChanged(CompoundButton view,int position, boolean isChecked);
}
package cn.com.sligner.listCheckBox;import java.util.ArrayList;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;public class ListAdapter extends BaseAdapter{
private Context mContext;
private ArrayList<Student> list;
private OnItemCheckedChanged onItemCheckedChangedListener;
public void setOnItemCheckedChangedListener(
OnItemCheckedChanged onItemCheckedChangedListener) {
this.onItemCheckedChangedListener = onItemCheckedChangedListener;
}
public ListAdapter(Context mContext, ArrayList<Student> list){
super();
this.mContext = mContext;
this.list = list;
}
@Override
public int getCount() {
return list.size();
} @Override
public Object getItem(int position) {
return list.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(final int position, final View convertView, ViewGroup parent) {
View view;
if(convertView != null){
view = convertView;
}else{
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.listitem, null, false);
}
TextView text = (TextView)view.findViewById(R.id.itemtext);
text.setText(list.get(position).getName());
CheckBox checkBox = (CheckBox)view.findViewById(R.id.itemcheck);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
onItemCheckedChangedListener.onItemCheckedChanged(buttonView, position, isChecked);
}
});
return view;
}}
2、绘制checkBox时添加监听
3、注意添加这个属性android:descendantFocusability="blocksDescendants"