大侠请进,android listview添加单选按钮。为什么总是多选 最好给出代码例子,尽量说详细点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加单选按钮。为什么总是多选,你的意思是点击了一个checkbox选中多行么? http://blog.csdn.net/aomandeshangxiao/article/details/6643831 看看这个对你有帮助吗。 可以这样做,在adapter里:@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub GridHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.item_repairshow, null); holder = new GridHolder(); holder.rbSelect=(RadioButton)convertView.findViewById(R.id.rbSelect);//单选钮 convertView.setTag(holder); }else{ holder = (GridHolder) convertView.getTag(); } HashMap<String,Object> info = items.get(position); if (info != null) { holder.rbSelect.setOnClickListener(new lvButtonListener(position,CommonMethod.HANDLER_RADIOBUTTON)); holder.rbSelect.setChecked((Boolean)info.get("Selected")); } return convertView; }class lvButtonListener implements View.OnClickListener { private int position; private int type; lvButtonListener(int pos,int type) { position = pos; this.type=type; } @Override public void onClick(View v) { Message msg = handler.obtainMessage(); msg.what = type; msg.arg1 = position; handler.sendMessage(msg); } }然后在activity里:public Handler mAdpBtnClickHandler = new Handler() { public void handleMessage(Message msg) { switch(msg.what) { case CommonMethod.HANDLER_BUTTON: //地图 break; case CommonMethod.HANDLER_RADIOBUTTON: //选择 if(balanceIndex==msg.arg1) return; if(balanceIndex!=-1){ HashMap<String,Object> map= adapter.getItems().get(balanceIndex); map.put("Selected", false); } HashMap<String,Object> map= adapter.getItems().get(msg.arg1); map.put("Selected", true); balanceIndex=msg.arg1; adapter.notifyDataSetChanged(); break; } } };需要解释不? 在Android编程中将jpg图片转换成bitmap之后像素大小不一样 求教activity的一些问题 关于View的尺寸比Layout大的问题 xml文件中的<eat-comment />有什么作用 android选择控件问题 Android系统中,各个进程的含义 Android 创建AVD模拟器时的自动关闭的故障 能不能用代码控制NFC的响应啊 android progressbar的白色背景怎么去掉 关于四种启动模式的中singleTask不解 socket和输入输出流的问题 baseAdapter listview不显示
你的意思是点击了一个checkbox选中多行么?
在adapter里:@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
GridHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_repairshow, null);
holder = new GridHolder();
holder.rbSelect=(RadioButton)convertView.findViewById(R.id.rbSelect);//单选钮 convertView.setTag(holder);
}else{
holder = (GridHolder) convertView.getTag();
}
HashMap<String,Object> info = items.get(position); if (info != null) {
holder.rbSelect.setOnClickListener(new lvButtonListener(position,CommonMethod.HANDLER_RADIOBUTTON));
holder.rbSelect.setChecked((Boolean)info.get("Selected"));
}
return convertView;
}class lvButtonListener implements View.OnClickListener {
private int position;
private int type; lvButtonListener(int pos,int type) {
position = pos;
this.type=type;
}
@Override
public void onClick(View v) {
Message msg = handler.obtainMessage();
msg.what = type;
msg.arg1 = position;
handler.sendMessage(msg);
}
}
然后在activity里:public Handler mAdpBtnClickHandler = new Handler() {
public void handleMessage(Message msg) {
switch(msg.what) {
case CommonMethod.HANDLER_BUTTON:
//地图
break;
case CommonMethod.HANDLER_RADIOBUTTON:
//选择
if(balanceIndex==msg.arg1)
return;
if(balanceIndex!=-1){
HashMap<String,Object> map= adapter.getItems().get(balanceIndex);
map.put("Selected", false);
}
HashMap<String,Object> map= adapter.getItems().get(msg.arg1);
map.put("Selected", true);
balanceIndex=msg.arg1;
adapter.notifyDataSetChanged();
break;
}
}
};
需要解释不?