2016-04-11 6 views
1

Arbeit habe ich ein Spinner, die 3 Werte von SQLite-Datenbank ein Dummy hat und 2 echteLöschen eines Datensatzes aus SQLite Spinner und Aktualisieren spinner Werte in Android nicht richtig

ich ein Element auswählen und ich einen Artikel löschen

Wenn ich versuche, den nächsten Spinner zu löschen, werden seine Werte nicht aktualisiert. Der Wert ist es auch wenn ich Aktivität neu lade.

Methode, um Daten zu laden, um Spinner und ich es nennen, wenn ich Artikel löschen:

private void LoadSpinnerData(ArrayList<String> list) 
{  
    seasonslist.add(0,"Please Select"); 
    // Creating adapter for spinner 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    // attaching data adapter to spinner 
    MySpin.setAdapter(dataAdapter); 
    dataAdapter.notifyDataSetChanged(); 

} 

Hier ist meine Löschmethode

mHelper.deleteItem(Id); 
Selected_id=null; 
List = mHelper.getAllData(); 
LoadSpinnerData(List); 

Und hier mein Spinner Artikel

wählen
MySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
     { 
      if(position>0) 
      { 
       Selected_id = (int) (long) id; 
      } 

     } 

    }); 

Meine Löschfunktion ist

public boolean deleteItem(int id) 
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    return db.delete("mytable","item_id"+"="+Integer.toString(id),null)>0; 
} 
+0

Überprüfen Sie, ob Sie von Ihrem db-Tabelle erfolgreich Ihren Artikel löschen! –

+0

Können Sie Ihre Methode: 'getAllData()' – barmaley

Antwort

0

Nach dem Löschen statt adapter.notifyDataSetChanged(); Sie können den folgenden Code verwenden.

adapter.remove(position); 

Die Position hier wird die item_id aus der Datenbank übereinstimmen.

Dies überprüft die ID aus der Datenbank und löscht die Position des Spinnerlistenelements basierend auf der Indexposition der Spinnerliste.

So von spinner Artikel löschen und dann aus der Datenbank oder umgekehrt