2012-02-26 4 views
0

Я пытался это сделать уже 2 дня, и я не знаю, как это исправить.SeekBarPreferences меняются, но не визуально

По существу, у меня есть служба, которая слушает изменения в ListView (через BroadcastReceiver) и обновляет несколько SeekBarPreferences соответственно через editor.putInt («SeekBarPreference», value) .commit() ;. Теперь все работает так, как должно, и оно возвращает правильные значения, но это не изменит визуально визуальные образы. Если я перезапущу службу (нажмите и затем выберите соответствующий параметр), они перейдут на правильные позиции. Или даже если я вращаю устройство, они меняются. Я думаю, мой вопрос; Есть ли способ вручную «обновить» «внешний вид» настроек?

Спасибо!

(я знаю, что есть подобные вопросы здесь, но ни один из них на самом деле не имеет решения)

ответ

0

Хромой способ, который я иногда отступаю, - это возобновить действие. Создайте намерение для текущей деятельности и запустите ее. Две строки кода. Не знаю, было ли это практическое решение вашей проблемы, но для меня это работало в разных ситуациях.

+0

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

+0

Спасибо, сейчас у меня это работает! – user1233752

0

вы попробовать invalidate() или requestlayout() на этой точке зрения?

+0

Проблема в том, что они не в макете. Все мои слайдеры и все в меню предпочтений. – user1233752

+0

вы можете использовать getview(), чтобы получить соответствующее представление – Royi

0

удалось получить seekbars обновляемые на слушателя ponSharedPreferenceChanged очистив предпочтения

PreferenceScreen prefScreen = getPreferenceScreen(); 
     prefScreen.removeAll(); 

загрузки XML снова

addPreferencesFromResource(...etc. 

Затем повторно посылает в эфир, чтобы обновить все,

Это работает, но это не очень элегантно. Спасибо всем за помощь!

Смежные вопросы