3

我已经尝试了很多天,但在颤动方面得到了空值。

我已经分享了代码。请让我知道有什么问题吗?

我还参考了链接How to access flutter Shared preferences on the android end (using java)但它与我的要求完全相反。

MainActivity.java

SharedPreferences  prefs = contextApplication.getSharedPreferences("preference", MODE_PRIVATE);
//save in shared prefs
prefs.edit().putString("hashMapEventsInBg_session", hashMapString).apply();

主要.dart

 SharedPreferences  sp = await SharedPreferences.getInstance();
  var demosession = sp.getString("hashMapEventsInBg_session");
4

3 回答 3

2

你可以做的是:

1. 将名称设置getSharedPreferences"FlutterSharedPreferences"

getSharedPreferences("FlutterSharedPreferences", MODE_PRIVATE)

2.始终"flutter."在任何对的键中添加前缀。

putString("flutter.test", "你好")

科特林代码。

  val prefs: SharedPreferences = getSharedPreferences("FlutterSharedPreferences", MODE_PRIVATE)
  prefs.edit().putString("flutter.test", "Hello").apply()

3.在Flutter中读取这样的值。

String test = (await SharedPreferences.getInstance()).getString("test"); //returns Hello.
于 2021-01-14T14:53:45.383 回答
2

如果你使用 android java

在安卓端

 Map<String, String> data = yourdata;
 SharedPreferences preferences = this.getSharedPreferences("FlutterSharedPreferences",MODE_PRIVATE);
 JSONObject jsonObject = new JSONObject(message);
 String jsonString = jsonObject.toString();
 SharedPreferences.Editor editor = preferences.edit();
 editor.putString("flutter.msg",jsonString);
 editor.apply();

在颤动的一面

SharedPreferences preferences = await SharedPreferences.getInstance();
    if(preferences.containsKey('msg')){
       final message  =  preferences.getString('msg');
        Map data = json.decode(message);
         
    }
于 2021-03-24T12:50:22.500 回答
0

在颤振中使用共享首选项的包:https ://pub.dev/packages/shared_preferences

要了解有关在颤振中使用共享偏好的更多信息:https ://medium.com/flutterdevs/using-sharedpreferences-in-flutter-251755f07127

https://flutter.dev/docs/cookbook/persistence/key-value

于 2021-01-14T12:17:37.093 回答