显示表中SharedPreferences的字符串

时间:2014-01-09 11:51:22

标签: android android-listview sharedpreferences

我来自iOS,我很难理解Android中的SharedPreferences。

我有很多字符串加载到SharedPreferences中,我想在ListView中显示它们。

目前,我只能将它们显示在LogCat中。

这是我到目前为止的代码:

SharedPreferences preferences = this.getSharedPreferences("MyPreferences",
        Context.MODE_PRIVATE);
Map<String, ?> prefsMap = preferences.getAll();
for (Map.Entry<String, ?> entry: prefsMap.entrySet()) {
        Log.v("SharedPreferences", entry.getValue().toString());

}

有人能指出我正确的方向吗?

5 个答案:

答案 0 :(得分:1)

您的代码是正确的,

请将您的日志显示代码行更新为

Log.v("SharedPreferences", entry.getValue().toString()+"--Value");

因为当entry.getValue()。toString()返回null时,日志将不会显示在logcat中,有一个选项表明所有条目都为空,这就是为什么你没有在logcat中看到任何日志消息。

注意: 如果[Log.v(TAG,MSG)]的任何条目(标记或消息)为空,则不显示日志。

答案 1 :(得分:1)

使用ArrayList<String>并存储您的首选数据,使用Adapter并填充ListView

This site有使用它的详细说明:

答案 2 :(得分:1)

要在ListView中显示它,您应该查找如何使用它,以及如何使用ListAdapter。

非常好的教程,甚至展示最佳实践:

http://www.vogella.com/tutorials/AndroidListView/article.html

答案 3 :(得分:1)

为了实现这一目标,您将需要以下内容。

  1. 您在layout.xml文件中的ListView(这将显示您的列表)
  2. 而不是将其存储在字符串arrayList
  3. 使用String ArrayList为listView创建ArrayAdapter。
  4. 例如按照:

    public class YourActivity extends Activity {
    
        private ListView lv;
    
        public void onCreate(Bundle saveInstanceState) {
            setContentView(R.layout.your_layout);
    
            lv = (ListView) findViewById(R.id.your_list_view_id);
    
            SharedPreferences preferences = this.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
            ArrayList<String> your_array_list = new ArrayList<String>();
            Map<String, ?> prefsMap = preferences.getAll();
            for (Map.Entry<String, ?> entry : prefsMap.entrySet()) {
                your_array_list.add(entry.getValue().toString());
            }
            // This is the array adapter, it takes the context of the activity as a
            // first parameter, the type of list view as a second parameter and your
            // array as a third parameter.
            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, your_array_list);
    
            lv.setAdapter(arrayAdapter);
        }
    }
    

答案 4 :(得分:1)

尝试以下代码。这对你有帮助

enter code here


final ArrayList<HashMap<String,String>> LIST = new ArrayList<HashMap<String,String>>();
SharedPreferences settings = getSharedPreferences(pref, 0);
Map<String, ?> items = settings.getAll();
for(String s : items.keySet()){
HashMap<String,String> temp = new HashMap<String,String>();
temp.put("key", s);
temp.put("value", items.get(s).toString());
LIST.add(temp);

}