抱歉,如果英语不好
我是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
}
});
答案 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();
}
});
我希望它可以帮助任何具有这种特定情况的人。