List.Remove始终删除ListView的最后一项

时间:2013-12-07 06:26:22

标签: android listview

当我尝试从列表中删除特定项目时:

        buyButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            tempToken -= selPerk.cost;
            plrPerks.add(selPerk);
            String tokStr = String.valueOf(tempToken);
            tkn.setText(tokStr);
            shopItems.remove(selPerk);
            selPerk = new Perk();
            perkDialog.dismiss();
        }
    });

似乎总是删除最后一项。这是我打开对话框的地方:

perks.setClickable(true);
    perks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            Perk perk = (Perk) perks.getItemAtPosition(position);
            showItem(perk);
        }
    });
}

这是show Item功能:

public void showItem(Perk perk) {
    if (tempToken >= perk.cost) {
        selPerk = perk;

如何分别从列表和列表视图中删除特定项目?

感谢您的时间:)

3 个答案:

答案 0 :(得分:1)

在“setOnItemClickListener”侦听器中,您将获取perk对象。因此,您可以从列表中删除该对象 -

shopItems.remove(perk);

然后你可以打电话 -

your_adapter.notifyDataSetChanged();

刷新列表视图。

答案 1 :(得分:0)

要从列表视图中删除特定项目,如果您有对要删除的视图的引用,则可以调用removeView(View toBeRemoved)。如果您有索引,则可以调用removeView(int index)。

http://developer.android.com/reference/android/widget/ListView.html

您可以使用remove(Object item)或remove(int index)以相同的方式从列表中删除特定项目。

http://docs.oracle.com/javase/7/docs/api/java/util/List.html

希望这有帮助!

答案 2 :(得分:0)

我修好了。每当我删除一个项目时,我必须这样做:

shopItems.remove(selPerk);
perk_adapter.notifyDataSetChanged();

所以我必须通知我的listeview适配器我删除了一个项目。