listView的item中有checkbox,重复被选中的问题
来源:互联网 发布:网络产品线是干什么的 编辑:程序博客网 时间:2024/05/17 08:36
当选中第一个的时候,底下的也被默认选中了
解决方案:
public class ListHuowuDetaikAdapter extends BaseAdapter {
private LayoutInflater inflater;
private Context context;
private ArrayList<MallShop> mallShop=new ArrayList<MallShop>();
private ImageLoader loader;
public ArrayList<MallShop> checkmall = new ArrayList<MallShop>();
//将状态用HashMap保存起来
private HashMap<Integer,Boolean> checkpos = new HashMap<Integer, Boolean>();
//记录checkBox的选中状态
public void setData(ArrayList<MallShop> mallShop){
this.mallShop = mallShop;
for (int i = 0; i < mallShop.size(); i++) {
checkpos.put(i, false);
}
}
public ListHuowuDetaikAdapter(Context context) {
this.context = context;
inflater = LayoutInflater.from(context);
loader = myImg.initImg(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mallShop!=null? mallShop.size():0;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return mallShop.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(final int pos, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
final ViewHolder holder;
if (arg1 == null) {
holder = new ViewHolder();
arg1 = inflater.inflate(R.layout.list_huoqu_detail, null);
holder.img_yijianpic = (ImageView) arg1.findViewById(R.id.img_yijianpic);
holder.rad_zhuangtai = (CheckBox) arg1.findViewById(R.id.rad_zhuangtai);
holder.tv_pinpai_name = (TextView) arg1.findViewById(R.id.tv_pinpai_name);
holder.tv_yijian_huo_name = (TextView) arg1.findViewById(R.id.tv_yijian_huo_name);
holder.tv_yijian_huo_price = (TextView) arg1.findViewById(R.id.tv_yijian_huo_price);
arg1.setTag(holder);
} else {
holder = (ViewHolder) arg1.getTag();
}
holder.tv_yijian_huo_name.setText(mallShop.get(pos).getName());
try {
loader.displayImage(mallShop.get(pos).getShop_image()!=null?mallShop.get(pos).getShop_image().get(0):"",holder.img_yijianpic);
} catch (Exception e) {
}
holder.tv_yijian_huo_price.setText("¥"+mallShop.get(pos).getPrice()+"元");
holder.tv_pinpai_name.setText(mallShop.get(pos).getBrand());
holder.rad_zhuangtai.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked) {
if(isChecked){
checkmall.add(mallShop.get(pos));
checkpos.put(pos,true);
}else{
checkmall.remove(mallShop.get(pos));
checkpos.put(pos, false);
}
}
});
holder.rad_zhuangtai.setChecked(checkpos.get(pos));
return arg1;}
class ViewHolder {
ImageView img_yijianpic;
TextView tv_yijian_huo_name, tv_yijian_huo_price, tv_pinpai_name;
CheckBox rad_zhuangtai;
}
在Activity中发送请求获取商品的信息
private ListHuowuDetaikAdapter adapter;
private ImageView img_yijian;
ArrayList<MallShop> mallShop = new ArrayList<MallShop>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_yi_jian_shanghuo);
img_yijian = (ImageView) findViewById(R.id.img_yijian);
img_yijian.setOnClickListener(this);
adapter = new ListHuowuDetaikAdapter(this);
list_huoqu_detail.setAdapter(adapter);
HttpUtils utils = new HttpUtils();
utils.send(HttpMethod.POST, TaskApi.ip + TaskApi.selectMallShop, new RequestCallBack<String>() {
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
Log.e("_MYLOG_", "ListHuowuDetaikAdapter----" + arg0.toString() + "...\n" + arg1.toString());
Toast.makeText(YiJianShanghuoActivity.this, "网络访问失败", Toast.LENGTH_SHORT).show();
}
public void onSuccess(ResponseInfo<String> arg0) {
// TODO Auto-generated method stub
Log.e("_MYLOG_", "selectMallShop" + arg0.result.toString());
Gson gson = new Gson();
AllShop as = gson.fromJson(arg0.result, AllShop.class);
mallShop = as.getMallShop();
adapter.setData(mallShop);
adapter.notifyDataSetChanged();
});
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.img_yijian:
addToshop();
finish();
break;
break;
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
addToshop();
break;
return super.onKeyDown(keyCode, event);
}
// TODO Auto-generated method stub
HttpUtils utils = new HttpUtils();
for (int i = 0; i < adapter.checkmall.size(); i++) {
params.addBodyParameter("username", Shared.login_username);
params.addBodyParameter("barcode", adapter.checkmall.get(i).getBarcode());
params.addBodyParameter("name", adapter.checkmall.get(i).getName());
params.addBodyParameter("brand", adapter.checkmall.get(i).getBrand());
params.addBodyParameter("original_price", adapter.checkmall.get(i).getPrice());
params.addBodyParameter("shop_one_type", adapter.checkmall.get(i).getShop_one_type());
params.addBodyParameter("shop_two_type", adapter.checkmall.get(i).getShop_two_type());
params.addBodyParameter("description", adapter.checkmall.get(i).getDescrip());
try {
params.addBodyParameter("shop_image", adapter.checkmall.get(i).getShop_image().get(0));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
utils.send(HttpMethod.POST, TaskApi.ip + TaskApi.addSellerShopFromMall, params,
new RequestCallBack<String>() {
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
public void onSuccess(ResponseInfo<String> arg0) {
// TODO Auto-generated method stub
JSONObject json;
Log.e("_MYLOG_", "addSellerShopFromMall" + arg0.result.toString());
try {
json = new JSONObject(arg0.result);
if (!json.getString("result").equals("success")) {
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
});
}
}
- listView的item中有checkbox,重复被选中的问题
- ListView checkbox 重复选中的问题。
- 关于listview中checkbox的选中问题
- ListView的item中有CheckBox焦点冲突
- listView的item中有checkbox,导致setOnItemClick失效
- listview的item中含有checkbox的一些问题
- GridView/ListView的item中使用CheckBox的问题
- 关于ListView中checkBox选中状态错乱问题的解决办法
- 关于ListView的item中含有checkbox,并判断选中的数目
- 关于ListView+CheckBox,Item超过一屏时数据乱序和不能全部选中的问题
- 关于ListView+CheckBox,Item超过一屏时数据乱序和不能全部选中的问题
- listview的item中有checkbox,仍要整个item响应点击或长按事件
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- gridview、listview适配器布局中带有checkbox实现的列表 checkbox只能有一项选中
- 关于ListView中item更新时重复的问题.
- listview中item 有checkbox多选防止滑动 listview页面 出现checkbox错位问题
- 64ListView中item中有CheckBox带来的选择状态混乱的解决
- Linux学习——NFS服务介绍及安装配置方法
- java初始化顺序
- 快速排序-java实现
- poj 2376 Cleaning Shifts 区间覆盖
- 238. Product of Array Except Self
- listView的item中有checkbox,重复被选中的问题
- 我是ATP~
- qnx之resource manager(二)
- Decode Alien Message模拟
- JavaScript异步编程设计快速响应的网络应用
- 安卓应用保活实践(双进程守护)
- 经典面试题-约瑟夫环
- 二叉树的几种遍历方法及递归和非递归的实现
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限