Как использовать `setTheme` из фрагмента? - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть кнопка переключения, которая должна переключить тему на темную. Так оно и есть во фрагменте. Я устанавливаю тему не для фрагмента. Я пытаюсь установить его из фрагмента

private static final String PREFS_NAME = "prefs";
private static final String PREF_DARK_THEME = "dark_theme";

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_settings, container,false);

    SharedPreferences preferences = getActivity().getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
    boolean useDarkTheme = preferences.getBoolean(PREF_DARK_THEME, false);

    if(useDarkTheme) {
       setTheme(R.style.AppTheme_Dark_NoActionBar);
    }

Здесь "не удается разрешить метод" setTheme (int) '"

    super.onCreate(savedInstanceState);

    Switch toggle = v.findViewById(R.id.themeSwitch);
    toggle.setChecked(useDarkTheme);

    toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton view, boolean isChecked) {
            toggleTheme(isChecked);
        }
    });


    return v;
}
private void toggleTheme(boolean darkTheme) {
    SharedPreferences.Editor editor = getActivity().getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
    editor.putBoolean(PREF_DARK_THEME, darkTheme);
    editor.apply();
    Intent intent = getActivity().getIntent();
    getActivity().finish();
    startActivity(intent);
}

Я пытаюсь переключить тему на темную

...