有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用SharedReferences在ArrayAdapter中存储和检索字符串

我需要在我的NavigationDrawerArrayAdapter中保存和检索两个字符串。 首先我宣布:

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) 个答案

  1. # 1 楼答案

    您可以使用以下方法检索数据:

    SharedPreferences sharedPreferences = context.getSharedPreferences("MYPREFS", context.MODE_PRIVATE);
    String username = sharedPreferences.getString("username", "");
    String photo = sharedPreferences.getString("photo", "");
    

    也更喜欢使用编辑器。应用()