Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Java 对象未从数组列表中正确删除_Java_Android_Arrays - Fatal编程技术网

Java 对象未从数组列表中正确删除

Java 对象未从数组列表中正确删除,java,android,arrays,Java,Android,Arrays,上面的代码有什么错误?基于isChecked am,将对象分别添加到arrayList和从arrayList中删除对象。但点击“确定”按钮,我仍然能看到里面的物体。看起来物体并没有被正确移除 你的台词有错 ICheckBoxClick icheckBoxClick = new ICheckBoxClick() { @Override public void onCheckCliked(boolean isChecked,String pkgName,i

上面的代码有什么错误?基于isChecked am,将对象分别添加到arrayList和从arrayList中删除对象。但点击“确定”按钮,我仍然能看到里面的物体。看起来物体并没有被正确移除

你的台词有错

     ICheckBoxClick icheckBoxClick = new ICheckBoxClick() {

        @Override
        public void onCheckCliked(boolean isChecked,String pkgName,int pos) {
        String packageName = cat_name+","+pkgName;
        AppModel appmodel = new AppModel();
        appmodel.pkgName = packageName;
        appmodel.dbId = 0;
           if( isChecked ) {
             selected.add(appmodel);
           } else{
             selected.remove(appmodel);
           }
        }
    };

    appsGrid.setAdapter(new AllAppsSelectionAdapter(actityCtx,icheckBoxClick));
     Button addItems = (Button) dialog.findViewById(R.id.add_applications);
     addItems.setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v) {
          iAddSubItemsClick.addClicked( selected );
          dialog.dismiss();
        }
    });
这里您正在创建一个新的
对象并添加或删除..如果
被选中
为false,则您正在创建一个新的
对象
并执行删除操作。但新创建的对象尚未添加..您正在删除不在列表中的对象..这就是为什么它没有删除

像这样检查并移除

    AppModel appmodel = new AppModel();
    appmodel.pkgName = packageName;

这是你台词中的错误

     ICheckBoxClick icheckBoxClick = new ICheckBoxClick() {

        @Override
        public void onCheckCliked(boolean isChecked,String pkgName,int pos) {
        String packageName = cat_name+","+pkgName;
        AppModel appmodel = new AppModel();
        appmodel.pkgName = packageName;
        appmodel.dbId = 0;
           if( isChecked ) {
             selected.add(appmodel);
           } else{
             selected.remove(appmodel);
           }
        }
    };

    appsGrid.setAdapter(new AllAppsSelectionAdapter(actityCtx,icheckBoxClick));
     Button addItems = (Button) dialog.findViewById(R.id.add_applications);
     addItems.setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v) {
          iAddSubItemsClick.addClicked( selected );
          dialog.dismiss();
        }
    });
这里您正在创建一个新的
对象并添加或删除..如果
被选中
为false,则您正在创建一个新的
对象
并执行删除操作。但新创建的对象尚未添加..您正在删除不在列表中的对象..这就是为什么它没有删除

像这样检查并移除

    AppModel appmodel = new AppModel();
    appmodel.pkgName = packageName;

这是你台词中的错误

     ICheckBoxClick icheckBoxClick = new ICheckBoxClick() {

        @Override
        public void onCheckCliked(boolean isChecked,String pkgName,int pos) {
        String packageName = cat_name+","+pkgName;
        AppModel appmodel = new AppModel();
        appmodel.pkgName = packageName;
        appmodel.dbId = 0;
           if( isChecked ) {
             selected.add(appmodel);
           } else{
             selected.remove(appmodel);
           }
        }
    };

    appsGrid.setAdapter(new AllAppsSelectionAdapter(actityCtx,icheckBoxClick));
     Button addItems = (Button) dialog.findViewById(R.id.add_applications);
     addItems.setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v) {
          iAddSubItemsClick.addClicked( selected );
          dialog.dismiss();
        }
    });
这里您正在创建一个新的
对象并添加或删除..如果
被选中
为false,则您正在创建一个新的
对象
并执行删除操作。但新创建的对象尚未添加..您正在删除不在列表中的对象..这就是为什么它没有删除

像这样检查并移除

    AppModel appmodel = new AppModel();
    appmodel.pkgName = packageName;

这是你台词中的错误

     ICheckBoxClick icheckBoxClick = new ICheckBoxClick() {

        @Override
        public void onCheckCliked(boolean isChecked,String pkgName,int pos) {
        String packageName = cat_name+","+pkgName;
        AppModel appmodel = new AppModel();
        appmodel.pkgName = packageName;
        appmodel.dbId = 0;
           if( isChecked ) {
             selected.add(appmodel);
           } else{
             selected.remove(appmodel);
           }
        }
    };

    appsGrid.setAdapter(new AllAppsSelectionAdapter(actityCtx,icheckBoxClick));
     Button addItems = (Button) dialog.findViewById(R.id.add_applications);
     addItems.setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v) {
          iAddSubItemsClick.addClicked( selected );
          dialog.dismiss();
        }
    });
这里您正在创建一个新的
对象并添加或删除..如果
被选中
为false,则您正在创建一个新的
对象
并执行删除操作。但新创建的对象尚未添加..您正在删除不在列表中的对象..这就是为什么它没有删除

像这样检查并移除

    AppModel appmodel = new AppModel();
    appmodel.pkgName = packageName;

您应该重写AppModel类中的
equals
hashCode
方法

以下是
remove
方法的工作原理:

移除索引最低的元素i,以便(o==null?get(i)==null:o.equals(get(i))(如果存在这样的元素)


您应该重写AppModel类中的
equals
hashCode
方法

以下是
remove
方法的工作原理:

移除索引最低的元素i,以便(o==null?get(i)==null:o.equals(get(i))(如果存在这样的元素)


您应该重写AppModel类中的
equals
hashCode
方法

以下是
remove
方法的工作原理:

移除索引最低的元素i,以便(o==null?get(i)==null:o.equals(get(i))(如果存在这样的元素)


您应该重写AppModel类中的
equals
hashCode
方法

以下是
remove
方法的工作原理:

移除索引最低的元素i,以便(o==null?get(i)==null:o.equals(get(i))(如果存在这样的元素)


删除或添加项目后,通知数据集已更改。
yourAdapter.notifyDataSetChanged()函数执行此操作。

删除或添加项后,通知数据集已更改。
yourAdapter.notifyDataSetChanged()函数执行此操作。

删除或添加项后,通知数据集已更改。
yourAdapter.notifyDataSetChanged()函数执行此操作。

删除或添加项后,通知数据集已更改。

yourAdapter.notifyDataSetChanged()函数执行此操作。

在不知道所选的
集合是什么(列表?集合?)的情况下,我猜想所选的
集合和所构建的
AppModel
对象中的内容不满足相等条件。对于
AppModel
类,是否有
equals
方法?在ArrayListpublic类AppModel{public String pkgName=null;public long dbId=0;}中选择,而不知道所选的
集合是什么(列表?集合?)我想,
所选
集合和您构建的
AppModel
对象中的内容不符合相等条件。对于
AppModel
类,是否有
equals
方法?在ArrayListpublic类AppModel{public String pkgName=null;public long dbId=0;}中选择,而不知道所选的
集合是什么(列表?集合?)我想,
所选
集合和您构建的
AppModel
对象中的内容不符合相等条件。对于
AppModel
类,是否有
equals
方法?在ArrayListpublic类AppModel{public String pkgName=null;public long dbId=0;}中选择,而不知道所选的
集合是什么(列表?集合?)我想,
所选
集合和您构建的
AppModel
对象中的内容不符合相等条件。对于
AppModel
类,是否有
equals
方法?在ArrayListpublic类AppModel{public String pkgName=null;public long dbId=0;}中选择,但仍然不清楚,即使我创建了一个对象,如果isChecked为false,我还没有将其添加到ArrayList中!酷明白了这个概念。好的..Arraylist是对象的集合..只有当同一个对象被添加到arralist时,你才能执行删除操作..这里你正在使用新的操作器创建新的对象,但是你添加了不同的对象..所以对象不会删除..但是仍然不清楚,即使我创建了一个对象,如果isChecked为false,我还没有将其添加到ArrayList中!很酷。好的。Arraylist是对象的集合。你可以执行删除操作