java使用SharedReferences在ArrayAdapter中存储和检索字符串
我需要在我的NavigationDrawer
的ArrayAdapter
中保存和检索两个字符串。
首先我宣布:
private static SharedPreferences prefs;
然后在getView()方法中
SharedPreferences.Editor editor = context.getSharedPreferences("MYPREFS", context.MODE_PRIVATE).edit();
editor.putString("username", NameStr);
editor.putString("photo", urlProfile);
editor.commit();
这样我就可以保存我需要的字符串。但我不太确定,因为我从不在适配器中使用SharedReference。如何检索数据?我该把它放在哪里?谢谢
编辑: 实现我在getView()中编写的字符串
Intent intent = ((Activity) context).getIntent();
NameStr = intent.getStringExtra("username");
urlProfile = intent.getStringExtra("photo");
这两个字符串来自另一个活动
编辑2:解决方案 德克斯特找到了解决方案,效果非常好:
SharedPreferences sharedPreferences = context.getSharedPreferences("MYPREFS",context. MODE_PRIVATE);
if(sharedPreferences == null) return;
NameStr = sharedPreferences.getString("username", "");
urlProfile = sharedPreferences.getString("photo", "");
SharedPreferences.Editor editor = sharedPreferences.edit();
Intent intent = ((Activity) context).getIntent();
if(NameStr == null || NameStr.equals("")) {
NameStr = intent.getStringExtra("username");
editor.putString("username", NameStr);
}
if(urlProfile == null || urlProfile.equals("")) {
urlProfile = intent.getStringExtra("photo");
editor.putString("photo", urlProfile);
}
editor.apply();
所有这些都在适配器结构中
# 1 楼答案
您可以使用以下方法检索数据:
也更喜欢使用编辑器。应用()