2016-04-11 4 views
1

を働いていない私はSQLiteデータベースからの3つの値1つのダミーと2リアルスピナーを使用してSQLiteのからレコードを削除するとAndroidでスピナー値を更新することは適切

を持つスピナーを持っている私は1つの項目を選択して、私は1つのアイテム

を削除

私は次のものを削除しようとしていますが、スピナーはその値を更新していません。アクティビティをリロードしても、その値がそこにあります。スピナーするデータをロードする

方法と私は項目を削除するたびに、私はそれを呼び出す:ここ

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(); 

} 

は私のdeleteメソッド

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

されており、ここで私のスピナー項目が

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; 
      } 

     } 

    }); 
を選択

私の削除機能は

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

dbテーブルからアイテムを正常に削除したかどうかを確認してください。 –

+0

あなたの方法はできますか? 'getAllData()' – barmaley

答えて

0

adapter.notifyDataSetChanged()の代わりに削除した後。次のコードを使用することができます。

adapter.remove(position); 

ここでの位置は、item_idがデータベースと一致します。

これはデータベースからIDをチェックし、スピナーリストのインデックス位置に基づいてスピナーリスト項目の位置を削除します。

スピナーアイテムから最初に削除してからデータベースから削除するか、またはその逆に

関連する問題