操作方法,请给我一个想法。就像一个可以被其他所有类访问的全局类,我实际上想构建一个util类,以便所有这些东西都在那里,而我可以仅使用util类的对象来调用这些东西。
这就是我一直在做的
SharedPreferences sharedPreferences;
sharedPreferences = await SharedPreferences.getInstance();
sharedPreferences.setString('uwr_name', ctrUwrName.text);
getCredential();
这个getCredentail()方法已经在我要从sharePref中获取数据的地方调用了,但是我不知道我是否需要在设置数据时调用它,如果我在设置时不放它数据到sharedpref会给出错误
getCredential() async {
sharedPreferences = await SharedPreferences.getInstance();
}
答案 0 :(得分:1)
尝试shared_preferences。 然后,您可以创建这样的util类,
class SessionManager {
final String auth_token = "auth_token";
//set data into shared preferences like this
Future<void> setAuthToken(String auth_token) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString(this.auth_token, auth_token);
}
//get value from shared preferences
Future<String> getAuthToken() async {
final SharedPreferences pref = await SharedPreferences.getInstance();
String auth_token;
auth_token = pref.getString(this.auth_token) ?? null;
return auth_token;
}
}
在setAuthToken方法中设置值,
SessionManager prefs = SessionManager();
prefs.setAuthToken(welcome.data.auth_token);
从getAuthToken方法获取价值
Future<String> authToken = prefs.getAuthToken();
authToken.then((data) {
print("authToken " + data.toString());
},onError: (e) {
print(e);
});
我创建了this gist供您使用。
答案 1 :(得分:0)
您可以创建一个名为shared_pref.dart
的文件,在其中创建一个新的SharedPreference
对象和所需的所有方法(removeElement, insertElement, etc
)。
然后,每当启动应用程序时,您都可以在第一页中创建一个SharedPref sp = SharedPref(),然后将其传递给其他页面。但是,由于SharedPref保存在内存中,因此每次加载新页面时都可以创建对象。
答案 2 :(得分:0)
您可以尝试使用此库shared_preferences
。 shared_preferences
库按单例设计模式提供了一个SharedPreferences
实例,可帮助您连接到Android上的XML文件或iOS上的用户数据
答案 3 :(得分:0)
在main函数中的main.dart上将其初始化,然后在如下所示的任何地方使用;
main.dart
SharedPreferences prefs = await SharedPreferences.getInstance();
另一页
prefs.getString('key');