2015-05-01 75 views
0

因此,我有一個組織項目列表的android應用程序。每個項目都有相同的字段。包括通過微調選擇的一個。
我可以單獨保存每個項目的細節,並打開並編輯它們,沒有任何問題。
但是,當我改變一個項目上的微調器值時,它會改變它們的全部。我怎樣才能爲每個單獨的項目設置微調器的位置?下面的代碼顯示了我如何創建微調,並保存它的狀態。問題是它的狀態被保存爲列表中的所有項目。我怎樣才能單獨保存它?如何保存特定項目的微調狀態

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, genres); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    //SET SELECTION AFTER YOU SET THE ADAPTER NOT BEFORE IT 
    spinner.setSelection(preferences.getInt("spinnerSelection",0)); 
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     SharedPreferences preferences =PreferenceManager.getDefaultSharedPreferences(MovieInfo.this); 

     public void onItemSelected(AdapterView<?> arg0, View view, int position, long id) { 
      int item = spinner.getSelectedItemPosition(); 

      //String selected = spinner.getItemAtPosition(position).toString(); 
      //Toast.makeText(MovieInfo.this, "Selected item: " + selected, Toast.LENGTH_SHORT).show(); 
      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putInt("spinnerSelection", item); 
      editor.commit(); 

     } 
     public void onNothingSelected(AdapterView<?> arg0) { 

     } 
    }); 
+0

不清楚你想要什麼。向我們展示一段代碼,預期輸出等,以便其他人可以清楚你想要的東西 – Nabin

+0

所以問題是你想使用不同的__KEY__保存?除了__spinnerSelection__? – Nabin

+0

是的,允許爲每個項目設置值的東西。 –

回答

1

雖然你可以做到這一點使用SharedPreferences,我會建議你使用數據庫,而不是

在onItemSelected()方法中添加中的相關代碼。可能是你想在sqlite裏面添加記錄的方法。

更新:

按照你在聊天的問題,你可以使用變量,而不是當地去除需要使其最終

+1

我知道它與我的數據庫一起工作。再次感謝兄弟! –

+0

歡迎..高興地幫助:-) – Nabin