当Listpreferences改变时,不会调用onPreferenceChange方法

Rez*_*_Rg 9 android preferences toast

我的代码中有一个首选项活动.我想在用户更改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;
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是什么?

ρяσ*_*я K 16

将您的onCreate代码更改为:

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

   SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
   prefs.registerOnSharedPreferenceChangeListener(this);
}
Run Code Online (Sandbox Code Playgroud)

您没有添加registerOnSharedPreferenceChangeListenerPrefsActivity活动.