【发布时间】:2020-06-12 11:32:04
【问题描述】:
我想将当前语言保存在一个变量中,以便在其他页面中使用它。我将 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() 的值并存储在变量中?
谢谢
【问题讨论】:
-
await TranslatePreferences().getPreferredLocale(): dart.dev/codelabs/async-await -
我以这种方式获取打印中的值: Current() async { TranslatePreferences().getPreferredLocale(); var a=await TranslatePreferences().getPreferredLocale();返回一个;但是当我 print(Current());我明白了: 'Future
' 的实例 我如何获得返回值?谢谢
标签: flutter dart sharedpreferences