在列表视图中显示共享首选项值

时间:2013-10-13 17:46:06

标签: android listview sharedpreferences

我的Android应用程序中有一个数据库,其中包含2个名为“word”和“含义”的字段。从这个数据库中,我可以检索数据(单词,含义)然后我必须将它们保存到共享首选项并保存这些共享首选项将显示在列表视图中。这些是我的目标。

现在,只有我可以从数据库中检索数据并将它们显示在列表视图中。为此我的代码是:

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

但我不明白如何将这两个字段(单词,含义)保存到共享首选项列表中,并将它们(共享首选项列表)显示到列表视图中。 谁能帮我怎么做?

1 个答案:

答案 0 :(得分:0)

在您的情况下,最好将列表保存在数据库中。

共享偏好设置按键组织。每个键都可以有一个值。在共享首选项中保存列表或数组的问题在于,没有好的方法来存储密钥,该密钥必须包含一些通用标识符和每个项目的标识符。它不便于存储和检索。

还有一个性能考虑因素:数据库比xml文件更适合存储和检索值(共享首选项只是一个xml文件)。