Android

时间:2016-02-18 16:52:22

标签: android listview sql-delete

我为衣服做了一个应用程序。我在分类列表中显示所有衣服。当用户单击列表项时,他们可以删除或编辑它。当一个项目被删除时,列表不会刷新,我必须离开,然后再次进入特定列表,看看它已经消失。

我正在尝试自动刷新列表。我需要一个意图吗?或者还有其他方法吗?

Details.java

ImageButton deleteButton = (ImageButton) findViewById(R.id.delete_clothes);
deleteButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        if (handler.deleteCloth(String.valueOf(extras.getInt("id")))) {
            Toast.makeText(getApplicationContext(), "Cloth has been deleted.", Toast.LENGTH_SHORT).show();
        }
    }
});

Dresses.java

private void loadClothesData() {

    clothes = handler.readAllDresses();
    CustomAdapter adapter = new CustomAdapter(this, clothes);
    lv.setAdapter(adapter);
    lv.invalidateViews();
    adapter.notifyDataSetChanged();
    for (Clothes c : clothes) {
        String record = "ID=" + c.getID() + " | Category=" + c.getCategory() + " | " + c.getSize();
        Log.d("Record", record);
    }
}

Can anyone help?

2 个答案:

答案 0 :(得分:0)

在自定义适配器调用this.notifyDataSetChanged();中执行删除功能并从arrayList中删除该元素,该元素设置为该适配器。

我的意思是从您传递给Adapter的数组列表中删除已删除的值,然后调用notifyDatasetChanged()。

希望这会有所帮助。

答案 1 :(得分:0)

您正在删除项目单击侦听器中的对象。 那就是那个。

adapter.refreshlist(array after removing);
adapter.notifyDataSetChanged();

现在在Adapter类中。

Public void refreshlist(Arraylist array){
   this.oldarray=array;
}

这样做会有效。