У меня есть ConfigActivity с RemoteView, который должен показывать предварительный просмотр конфигурации виджета в реальном времени, прежде чем пользователь нажмет OK для создания виджета.
Я использую OnSharedPreferenceChanged для рефракции sh RemoteView каждый раз, когда пользователь заканчивает настройку параметров sh и Менеджер настроек обновляет данные.
Мне уже удалось:
- Я могу читать значения из SharedPreferences
- Я могу передать его в сообщение 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();
}