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