this question is similar to this - android - delete list item and update .
I cannot update my adapter using
adapter.notifyDataSetChanged();
I tried:
adapter.remove(adapter.getItem(pos));
but without success, just once (weird ...).
there is another answer:
Call that Activity once again Using Intent
Can sombody give me the exact code for this (or for the adapter / cursor)?
I have been trying this for several hours without success.
my full code is:
protected void onCreate (Bundle SavedInstanceState) { super.onCreate(SavedInstanceState); setContentView(R.layout.personalmessageview); headtitle= getIntent().getExtras().getString("head"); setTitle(headtitle); personalresults = getIntent().getExtras().getStringArrayList("personalres"); personalresultswithtime = getIntent().getExtras().getStringArrayList("personalrestime"); // setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,personalresults)); ListView list = (ListView)findViewById(R.id.listview_personal); // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, personalresults); list.setAdapter(adapter); registerForContextMenu(list); list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) { String time = personalresultswithtime.get(pos).toString(); Show_Alert_box(v.getContext(),"Please select action.",time,pos); return true; } });
public void Show_Alert_box (context context, String message, string time, int position) end timestamp of the string = time;
final int pos = position; final AlertDialog alertDialog = new AlertDialog.Builder(context).create(); alertDialog.setTitle(getString(R.string.app_name)); alertDialog.setButton("Delete", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { try { db = databaseHelper.getWritableDatabase(); db.delete("messages","timestamp" + "=?", new String[] { timestamp }); Log.d("DB"," delete! "); ArrayAdapter<String> adapter = new ArrayAdapter<String>(PersonalMessageView.this, android.R.layout.simple_list_item_1, personalresults); adapter.remove(adapter.getItem(pos)); //not working t all! why ? list.notify(); list.invalidate(); personalresults.remove(pos); personalresultswithtime.remove(pos); adapter.notifyDataSetChanged(); db.close(); } catch(Exception e) { } } }); alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { alertDialog.dismiss(); } }); alertDialog.setMessage(message); alertDialog.show();
}