2012-12-02 5 views
9

У меня есть функция настроек в моем коде. Я хочу показать тост, когда пользователь меняет радиокнопку в Listpreferences. Я использовал этот код, но он не работал. :(onPreferenceChange метод не вызывается, когда изменения Listpreferences

public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
addPreferencesFromResource(R.xml.prefs); 
} 
public void onSharedPreferenceChanged(SharedPreferences arg0, String key) { 

ListPreference listPreference = (ListPreference) findPreference(key); 
listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { 

    @Override 
    public boolean onPreferenceChange(Preference preference, Object newValue) { 
     // TODO Auto-generated method stub 
     Toast.makeText(PrefsActivity.this, "second", Toast.LENGTH_LONG).show(); 
     return false; 
    } 
}); 
} 
} 

, что моя проблема

+4

Вы должны отредактировать эту новую информацию в существующий вопрос: [Показывать тост, когда пользователь меняет настройку в настройках] (http://stackoverflow.com/q/13665409/1267661), а не создавать новый вопрос. Пожалуйста, ознакомьтесь с [FAQ] о приемлемых способах привлечения внимания к вашим вопросам. – Sam

+0

@Reza_rg: у вас есть try'Log.v («ListPreference», «onPreferenceChange»); 'видеть onPreferenceChange вызывается или нет в logcat? –

+0

@imrankhan Я попробовал это сейчас, и кажется, что onPreferenceChange не нужно называть. Что мне теперь делать? –

ответ

16

Изменить onCreate код:.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.prefs); 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    prefs.registerOnSharedPreferenceChangeListener(this); 
} 

Вы не добавляющий registerOnSharedPreferenceChangeListener в PrefsActivity активность

+0

вы попробовали? –

+0

Да! Это была моя ошибка, спасибо. :) –

+0

сейчас, у меня есть еще одна проблема. :(Когда я нажимаю на одну из кнопок-переключателей в списке, тост, что хочу, но доза не обновляет значение в listpreferences. –

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