Elimina elemento dal database – ListView – Android

public class DataViewActivity extends Activity{ SQLiteDatabase db; SimpleCursorAdapter adapter; String dbTable = "users"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview_layout); ListView listView = (ListView) findViewById(R.id.dbPop); DBHelper dbhelper = new DBHelper(DataViewActivity.this); db = dbhelper.getWritableDatabase(); Cursor cursor = db.query(dbTable, null, null, null, null, null, null); startManagingCursor(cursor); String[] from = new String[] { "name","_id"}; int[] to = new int[] { android.R.id.text1 }; adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from, to); listView.setAdapter(adapter); } } 

Come implementare l'ascoltatore onClick a questo codice per eliminare la row del database selezionata. Non so molto di Android per cui per me è una curva di apprendimento.

  • Come popolare dynamicmente il filatore di Android con text + image
  • Modo corretto per popolare il listView con oggetti object?
  • come controllare lo stato di on / off dello schermo in onStop ()?
  • La modifica del text in Android sul cambiamento di text provoca errori di overflow
  • Android: Come forzare l'aggiornamento di tutti i widget di un particolare tipo
  • C'è un modo per controllare la visibilità della barra di stato?
  • setItemChecked non funziona sul pan di zenzero
  • Come ridurre la dimensione APK di Android?
  • Installare Android APK senza prompt
  • Il mediaserver di Droid muore sulla camera.takePicture ()
  • Analisi e memorizzazione di JSON di Android in un database
  • onTouch MotionEvent getTouchMinor e getTouchMajor sempre il risultato esatto stesso numero, perché?
  • 3 Solutions collect form web for “Elimina elemento dal database – ListView – Android”

    impostare setOnItemClickListener al tuo listview …

     listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { database.remove(id);//create removemethod in database class } }); 

    e nel metodo di rimozione

      public void remove(long id){ String string =String.valueOf(id); database.execSQL("DELETE FROM favorite WHERE _id = '" + string + "'"); } 
      listview.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0, View v, int pos,long id) { // TODO Auto-generated method stub { TextView tv=(TextView)v; String s1=tv.getText().toString(); //delete row String delgrp="DELETE FROM (tablename) WHERE (row)='"+s1+"'"; sdb.execSQL(delgrp); } 

    ListView.onListItemClick , come terzo parametro ha position . Position è la voce restituita da Adpater.getItem(int) . Quindi quando si fa clic su una row del ListView , il ListView.onListItemClick viene spento. Qui è ansible recuperare la voce Adapter e utilizzare le informazioni necessarie per eliminare la voce dal database.

     public void onListItemClick(ListView parent, View v, int position, long id) { // do something with the cursor } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.