从Flutter中的共享首选项中获取价值

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

亲爱的Stackoverflow社区,

我想在我的应用程序中获得语言环境的价值。我正在使用共享首选项,并且想在另一页中使用区域设置语言值,但是我找不到调用该值的方法:

这是我的主页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);

}

感谢您的帮助。

android flutter sharedpreferences
1个回答
0
投票

TranslatePreferences文件底部(在类之外)添加:

TranslatePreferences translatePreferences = TranslatePreferences();

然后在lang类中可以使用它:

string lang=translatePreferences.getPreferredLocale();
© www.soinside.com 2019 - 2024. All rights reserved.