从 Flutter 中的 Sharedpreferences 获取语言
Get language from Shared Prefences in Flutter
我想将当前语言保存在一个变量中以便在其他页面中使用它。我正在使用 shared_preferences 和 flutter_translate。
在我的 app.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));
}
}
如果我打印:
print(TranslatePreferences().getPreferredLocale());
我得到:Instance of 'Future<Locale>'
我如何管理它以获取 getPreferredLocale() 的值并将其存储在变量中?
谢谢
final Future<String> futureValue = Future.value("Hello !");
在sync
中打印未来值
void main() {
futureValue.then((value) => print(value)); // Hello !
}
在async
中打印未来值
void main() async {
final value = await futureValue;
print(value); // Hello !
}
我想将当前语言保存在一个变量中以便在其他页面中使用它。我正在使用 shared_preferences 和 flutter_translate。
在我的 app.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));
}
}
如果我打印:
print(TranslatePreferences().getPreferredLocale());
我得到:Instance of 'Future<Locale>'
我如何管理它以获取 getPreferredLocale() 的值并将其存储在变量中?
谢谢
final Future<String> futureValue = Future.value("Hello !");
在sync
中打印未来值void main() {
futureValue.then((value) => print(value)); // Hello !
}
在async
中打印未来值void main() async {
final value = await futureValue;
print(value); // Hello !
}