user572575
user572575

Reputation: 1049

Android listview delete data but listview not update

I delete data in SQLi but listview not update. I have to open activity agian then listview will update.

This is function delete data.

private void delData(int position) {


    cursor.moveToPosition(position);
    String rowId = cursor.getString(0);
    db.delete(DBHelper.TABLE_NAME, "_id = ?", new String[]{rowId});

    cursor.requery();
    adapter.notifyDataSetChanged();

}

This is function OnItemClick in OnCreate.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_driver);

    dbHelper = new DBHelper(DriverActivity.this);

    lv_driver=(ListView)findViewById(R.id.lv_driver);
    lv_driver.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            delData(i);

        }
    });
}

How to update listview after delete data ?

Upvotes: 1

Views: 75

Answers (1)

Skizo-ozᴉʞS ツ
Skizo-ozᴉʞS ツ

Reputation: 20626

I delete data in SQLi but ListView not update. I have to open activity again then ListView will update.

Yes, it's normal you are deleting the item from SQLite not from your ListView.

How to update ListView after delete data ?

You can recreate the ListView or just remove your item adapter.remove(position);

Example :

private void delData(int position) {
    cursor.moveToPosition(position);
    String rowId = cursor.getString(0);
    db.delete(DBHelper.TABLE_NAME, "_id = ?", new String[]{rowId});   
    cursor.requery();
    adapter.remove(position);
    adapter.notifyDataSetChanged();

}

Upvotes: 1

Related Questions