2013-10-13 23 views
0

我在我的Android應用程序數據庫中包含2場名爲「字」與「意」。從這個數據庫,我可以檢索數據(字,意思),然後我要救他們分享偏好,這些保存的共享偏好將顯示在一個列表視圖。這些是我的目標。現在節目共享優先值

,只有我可以從數據庫中檢索數據,並可以將它們顯示到view.For這是我的代碼列表如下:

ArrayList<HashMap<String, String>> list_of_wordmeanings = new ArrayList<HashMap<String, String>>(); 
    Cursor mCursor = mDbHelper.learn_getTestData(); 

    for (int i = 0; i < mCursor.getCount(); i++) 
    { 
     mCursor.moveToPosition(i); 

     String string = mCursor.getString(1);   

     HashMap<String, String> hm = new HashMap<String, String>(); 

      String word = mCursor.getString(0).toString(); 
      String meaning = mCursor.getString(1).toString(); 

      hm.put("key_word",word); 
      hm.put("key_meaning",meaning); 

      list_of_wordmeanings.add(hm); 
    } 

      String[] from = { "key_word","key_meaning" }; 
      int[] to = { R.id.txt1,R.id.txt2};   
      SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), list_of_wordmeanings, R.layout.list_layout, from, to); 
      listView.setAdapter(adapter); 

我也可以將數據保存到共享的偏好是這樣的:

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 
    editor.commit(); 

但我不明白如何將這兩個字段(字,意思)保存到共享偏好的列表,並將它們(共享喜好列表)顯示成列表視圖。 任何人都可以幫助我如何做到這一點?

+0

你檢查這[如何保存在SharedPreferences一個ArrayList(http://stackoverflow.com/a/10815983/1403997)。 – 4gus71n

+0

我不明白如何在列表視圖中顯示共享偏好列表?你能幫助我嗎? @astinx – DarkenShooter

+1

Naah ..它更好地啓動一個查詢,而不是在SharedPrefs中保存一個列表。它的一個普通主題「SQLite VS. SharedPrefs「,據我所知,SharedPrefs適用於小數據,如int,string或bool值。對於整個列表,請繼續進行查詢! – Prachi

回答

0

在你的情況下,最好是保存在數據庫中的表。

共享首選項按鍵組織。每個鍵都可以有一個值。在共享首選項中保存列表或數組的問題是沒有好的方法來存儲密鑰,該密鑰必須由一些通用標識符和每個項目的標識符組成。存儲和檢索不方便。

還有一個性能的考慮:數據庫是用於存儲和檢索比XML文件的值(共享偏好只是一個XML文件)更好。