Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在列表视图中选中某行中的复选框时,也会选中一些其他复选框。(安卓系统)_Android_Listview - Fatal编程技术网

Android 在列表视图中选中某行中的复选框时,也会选中一些其他复选框。(安卓系统)

Android 在列表视图中选中某行中的复选框时,也会选中一些其他复选框。(安卓系统),android,listview,Android,Listview,在列表视图中选中某行中的复选框时,也会选中一些其他复选框。在android中。有人知道为什么会出现这个问题吗?以下是我的源代码: dbHelper db1 = new dbHelper(WaterPopup.this); waterList = new ArrayList<HashMap<String, Object>>(); map1 = new HashMap<String, Object>(); Cu

在列表视图中选中某行中的复选框时,也会选中一些其他复选框。在android中。有人知道为什么会出现这个问题吗?以下是我的源代码:

            dbHelper db1 = new dbHelper(WaterPopup.this);

    waterList = new ArrayList<HashMap<String, Object>>();

    map1 = new HashMap<String, Object>();

    Cursor c1 = db1.getMenuDetailsData(SubMenuID);
    c1.moveToFirst();
    while (c1.isAfterLast() == false) {

        if (c1.getString(3).substring(0).equals("I")) {
            map1.put("WaterOptionID", c1.getString(5).substring(0)) ;
              map1.put("CheckBox",cb);
              map1.put("WaterOptionName", c1.getString(0).substring(0));
              map1.put("MinusImg",R.drawable.minus_30+"");
              map1.put("Quantity","1");
              map1.put("PlusImg",R.drawable.plus_30+"");
              map1.put("Currency","$");
              map1.put("Price", c1.getString(2).substring(0));
              map1.put("OrderStatusImg",R.drawable.round_25+"");

            waterList.add(map1);
            map1 = new HashMap<String, Object>();
        }

        c1.moveToNext();
    }
    c1.close(); 


        mSchedule = new SimpleAdapter(WaterPopup.this, waterList, R.layout.waterlistitem,
                new String[] {"WaterOptionID","CheckBox", "WaterOptionName", "MinusImg", "Quantity","PlusImg","Currency", "Price", "OrderStatusImg"}, 
                   new int[] {R.id.wateroptionID_tv,R.id.orderWater_cb, R.id.wateroptionName_tv, R.id.minussign_btn, R.id.Qty_tv, R.id.plusimage_btn,R.id.currency_tv,R.id.price_tv,R.id.orderStatus_btn});
        OrderWaterItem.setAdapter(mSchedule);
仅支持文本视图:

构造函数中“to”参数的说明:


应在from参数中显示列的视图。这些都应该是文本视图。此列表中的前N个视图提供了from参数中前N列的值。

您必须覆盖适配器。这并不难。看这里:

在这里:


@Neha,也许你可以编辑你的原始问题并解释你的进度,而不必删除原始代码,也可以发布新代码。很难在评论中看到它。但是我知道你在问什么,当你滚动时,当框离开屏幕时,会被取消选中吗?您只需要选中一个复选框?如果它离开屏幕,被取消选中,而你提交,它的行为是否会像未选中一样?@trgraglia:是的,你是对的。我在listview的每一行上都有复选框。当我滚动列表时,复选框的状态将丢失。@Neha,我不熟悉自定义适配器中是否有小部件对象,但也许您可以设置一些断点并进行调试,看看是否在每次出现小部件时都调用它们。然后,您可能会在适配器上设置一个布尔值,当复选框返回视图时,它会检查布尔值并变为选中或不选中。@trgraglia:我得到了答案。这个链接帮助了我。我刚刚在你的文章中添加了这个链接,因为它被隐藏在这里,人们不会看到它。。。如果您愿意,可以随意编辑和格式化。