我来自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());
}
有人能指出我正确的方向吗?
答案 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)
为了实现这一目标,您将需要以下内容。
例如按照:
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);
}