Как обновить RemoteViews в ConfigActivity с действием onSharedPreferenceChanged - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть ConfigActivity с RemoteView, который должен показывать предварительный просмотр конфигурации виджета в реальном времени, прежде чем пользователь нажмет OK для создания виджета.

Я использую OnSharedPreferenceChanged для рефракции sh RemoteView каждый раз, когда пользователь заканчивает настройку параметров sh и Менеджер настроек обновляет данные.

Мне уже удалось:

  1. Я могу читать значения из SharedPreferences
  2. Я могу передать его в сообщение Toast

НО,

Я не могу передать это значение в RemoteView, чтобы проиллюстрировать изменения значений, я имею в виду, что RemoteView в ConfigActivity не обновляется.

Вот фрагмент кода, который, я уверен, что-то пропустил:

        @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

        final Context onSharedContext = this.getActivity();
        assert onSharedContext != null;
        final RemoteViews sharedViews = new RemoteViews(onSharedContext.getPackageName(), R.layout.configuration_activity);

        int hoursColor = PreferenceManager.getDefaultSharedPreferences(onSharedContext).getInt("hoursColor", ContextCompat.getColor(getActivity(), R.color.clockTextColor)); //to jest OK
        sharedViews.setViewVisibility(R.id.dateMonth, View.GONE);

        //Test for onSharedPreferenceChanged and getDefaultSharedPreferences listener
        Toast.makeText(onSharedContext, "BOOM!!" + hoursColor, Toast.LENGTH_SHORT).show();
    }
...