从 Flutter 中的共享偏好中获取价值
Get value from shared preference in Flutter
亲爱的 Whosebug 社区,
我想在我的应用程序中获取区域设置语言的值。我正在使用共享首选项,我想在另一个页面中使用区域设置语言值,但我找不到调用该值的方法:
这是我的页面 main.dart,其中:
class TranslatePreferences implements ITranslatePreferences
{
static const String _selectedLocaleKey = 'selected_locale';
@override
Future<Locale> getPreferredLocale() async
{
final preferences = await SharedPreferences.getInstance();
if(!preferences.containsKey(_selectedLocaleKey)) return null;
var locale = preferences.getString(_selectedLocaleKey);
return localeFromString(locale);
}
@override
Future savePreferredLocale(Locale locale) async
{
final preferences = await SharedPreferences.getInstance();
await preferences.setString(_selectedLocaleKey, localeToString(locale));
}
}
如果我理解得很好,我必须在我的其他页面中使用 getPreferredLocale() 但即使我导入 main.dart 我也可以在 lang.dart 页面中获取 getPreferredLocale():
class lang{
string lang=TranslatePreferences.getPreferredLocale();
print(lang);
}
感谢您的帮助。
在 TranslatePreferences
文件底部(class 之外)添加:
TranslatePreferences translatePreferences = TranslatePreferences();
然后在lang
class中你可以使用它:
string lang=translatePreferences.getPreferredLocale();
亲爱的 Whosebug 社区,
我想在我的应用程序中获取区域设置语言的值。我正在使用共享首选项,我想在另一个页面中使用区域设置语言值,但我找不到调用该值的方法:
这是我的页面 main.dart,其中:
class TranslatePreferences implements ITranslatePreferences
{
static const String _selectedLocaleKey = 'selected_locale';
@override
Future<Locale> getPreferredLocale() async
{
final preferences = await SharedPreferences.getInstance();
if(!preferences.containsKey(_selectedLocaleKey)) return null;
var locale = preferences.getString(_selectedLocaleKey);
return localeFromString(locale);
}
@override
Future savePreferredLocale(Locale locale) async
{
final preferences = await SharedPreferences.getInstance();
await preferences.setString(_selectedLocaleKey, localeToString(locale));
}
}
如果我理解得很好,我必须在我的其他页面中使用 getPreferredLocale() 但即使我导入 main.dart 我也可以在 lang.dart 页面中获取 getPreferredLocale():
class lang{
string lang=TranslatePreferences.getPreferredLocale();
print(lang);
}
感谢您的帮助。
在 TranslatePreferences
文件底部(class 之外)添加:
TranslatePreferences translatePreferences = TranslatePreferences();
然后在lang
class中你可以使用它:
string lang=translatePreferences.getPreferredLocale();