Android中的删除和刷新列表

Android中的删除和刷新列表,android,listview,sql-delete,Android,Listview,Sql Delete,我做了一个衣服应用程序。我在分类列表中显示所有衣服。当用户单击列表项时,他们可以删除或编辑它。当一个项目被删除时,列表不会刷新,我必须离开,然后再次进入特定的列表,以查看它是否消失 我正在尝试自动刷新列表。我需要一个意图吗?或者还有别的办法吗 Details.java ImageButton deleteButton = (ImageButton) findViewById(R.id.delete_clothes); deleteButton.setOnClickListener(new Vie

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

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

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();
        }
    }
});
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?
Dresses.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();
        }
    }
});
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?

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

我的意思是从传递给适配器的数组列表中删除删除的值,然后调用notifyDatasetChanged()


希望这会有所帮助。

您正在删除项目单击侦听器中的对象。 所以在这方面

adapter.refreshlist(array after removing);
adapter.notifyDataSetChanged();
现在进入适配器类

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

这就可以了。

我们可以看到deleteBrath()的代码吗?公共布尔deleteBrath(字符串id){SQLiteDatabase db=This.getWritableDatabase();返回db.delete(SQLITE_TABLE,KEY_ROWID+“=”+id,null)>0;}我的delete方法在databaseHandler中,所以我不明白你在说什么我想你的databaseHandler方法正在返回衣服的arrayList,所以将更新的arrayList传递给适配器并执行notifyDataSetChanged on list。Otherwise请发布完整的代码,我将尝试以其他方式提供帮助。好的,非常感谢。我在上面的评论中发布了delete方法。我想我可能需要更改它。是的,从该方法返回并新建剩余衣服的arrayList,并将其传递给适配器集适配器,然后调用notifyDataSetChanged()