从列表视图中保留已删除的项目,准备好执行其他任务

时间:2017-11-02 21:12:09

标签: android listview

抱歉,如果英语不好

我是android开发方面的新手。 我正在开发一个应用程序,我需要填写自定义ListView。每个ListView项目都有一个删除按钮,从列表中删除它们,问题是我需要保留删除的项目。

一点背景: 我正在开发一个“怪物生成器”应用程序,它只是从一个“包”(只考虑一个List)给你一个怪物(名字,desc等)并将它放在我制作的java对象内的另一个列表中,该对象可以跟踪生成的怪物和袋子里留下的怪物。我已经制作了一个功能原型,仅使用TextViews,但我试图将其作为ListView,并且存在问题。

在我的自定义适配器中的getView方法

Button btnDelete = (Button) view.findViewById(R.id.btn_delete);
btnDelete.setOnClickListener(new View.OnClickListener(){
     public void onClick(View v){
           items.remove(position); // this item i need to keep somehow in the activity
           notifyDataSetChanged();
           // I need to keep the item removed, ready to use in the activity 
           //and i don't know how
     }
});

2 个答案:

答案 0 :(得分:0)

ArrayList<Monster> listToKeep = new ArrayList<>();

Button btnDelete = (Button) view.findViewById(R.id.btn_delete);
    btnDelete.setOnClickListener(new View.OnClickListener(){
         public void onClick(View v){
               listToKeep.add(items.get(position));
               items.remove(position);
               notifyDataSetChanged();

         }
    });

答案 1 :(得分:0)

好吧,我有点解决它:

首先,我认为我的问题的情况可能是具体的,无论如何我会发布我的解决方案。

其次,感谢您发布答案。

显然我对对象的理解非常糟糕,至少在java中是这样(我很惭愧)。

我只需更改我的CustomAdapterClass构造函数即可接受我的游戏逻辑&#34;

public CustomAdapter(GameActivity activity, List<Monster> items, GameLogic gamelogic){...}

我的&#34; GameLogic&#34; (这只是为了澄清我的情况)有两个ArrayList,一个是MonstersInBag列表(怪物不在游戏中),另一个是MonstersInGame列表。

MonstersInGame列表,是我用来填充列表视图的列表。

所以我添加了listview的删除项并将其添加到GameLogic - MonstersInBag,并使用公共方法更新了我的活动中的textView。

buttonDelete.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            Game.getMonsterGameBag().add(items.remove(position));
            notifyDataSetChanged();
            activity.UpdateMonsterNumber();
        }
    });

我希望它可以帮助任何具有这种特定情况的人。

相关问题