从Flutter中的共享偏好中获取语言

问题描述 投票:0回答:1

我想将当前语言保存在变量中,以便在其他页面中使用它。我正在使用带有flutter_translate的shared_preferences。

在我的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()的值并将其存储在变量中?

谢谢

flutter dart sharedpreferences
1个回答
0
投票
final Future<String> futureValue = Future.value("Hello !");

同步中打印将来的值

void main() {
  futureValue.then((value) => print(value)); // Hello !
}

异步中打印将来的值

void main() async {
  final value = await futureValue;
  print(value); // Hello !
}
© www.soinside.com 2019 - 2024. All rights reserved.