Java Listview未刷新数据库中已删除的行

Java Listview未刷新数据库中已删除的行,java,android,database,listview,Java,Android,Database,Listview,我有一个地址数据库。我只希望用户能够删除一行,但列表不会更新。我看到了所有其他人的例子,但他们并不适合我。我不断尝试不同事物的变化。它们都没有效果。我必须更改活动,然后它会删除 我在一个活动中添加地址,并以finish()结束 } 这是我的列表视图 public void onResume() { super.onResume(); deleteAddress(); cursor= dbHelper.fetchAllAddresses(); String col

我有一个地址数据库。我只希望用户能够删除一行,但列表不会更新。我看到了所有其他人的例子,但他们并不适合我。我不断尝试不同事物的变化。它们都没有效果。我必须更改活动,然后它会删除

我在一个活动中添加地址,并以finish()结束

}

这是我的列表视图

public void onResume() {

    super.onResume();
    deleteAddress();
    cursor= dbHelper.fetchAllAddresses();
    String columns[]= new String[]{
            dbHelper.KEY_NAME

    };
    int[] to = new int[] {
            R.id.rowTextView,
    };
    dataAdapter= new SimpleCursorAdapter(
            this,R.layout.simplerow, cursor,columns,to,0);
    dataAdapter.notifyDataSetChanged();
    listview= (ListView)findViewById(R.id.listView);
    listview.setAdapter(dataAdapter);
}

你的适配器看起来怎么样?您需要删除adapters项列表中的项,而不仅仅是数据库中的项。。。执行此操作,然后调用notifyDataSetChanged()

我不是在修改你的代码,因为有很多问题可以解决,只是以你的方式提供你的答案,试试这个

public void updateList(){

cursor= dbHelper.fetchAllAddresses();
    String columns[]= new String[]{
            dbHelper.KEY_NAME

    };
    int[] to = new int[] {
            R.id.rowTextView,
    };
    dataAdapter= new SimpleCursorAdapter(
            this,R.layout.simplerow, cursor,columns,to,0);
listview.setAdapter(dataAdapter); 
}

deleteAddress
方法中,您正在使用
position
作为行id,但是您应该使用
id
onItemClick
的参数。改变

final String selectedID = String.valueOf(position);


在哪里设置ListView的适配器?我添加了我的ListView@ρцσρѕρє工具包不起作用。我以前已经试过了。我不明白为什么。
public void onResume() {

    super.onResume();
    deleteAddress();
    cursor= dbHelper.fetchAllAddresses();
    String columns[]= new String[]{
            dbHelper.KEY_NAME

    };
    int[] to = new int[] {
            R.id.rowTextView,
    };
    dataAdapter= new SimpleCursorAdapter(
            this,R.layout.simplerow, cursor,columns,to,0);
    dataAdapter.notifyDataSetChanged();
    listview= (ListView)findViewById(R.id.listView);
    listview.setAdapter(dataAdapter);
}
public void updateList(){

cursor= dbHelper.fetchAllAddresses();
    String columns[]= new String[]{
            dbHelper.KEY_NAME

    };
    int[] to = new int[] {
            R.id.rowTextView,
    };
    dataAdapter= new SimpleCursorAdapter(
            this,R.layout.simplerow, cursor,columns,to,0);
listview.setAdapter(dataAdapter); 
}
final String selectedID = String.valueOf(position);
final String selectedID = String.valueOf(id);