閱讀578 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用PreferenceActivity時,如何獲取ListPreference中選中的值

汗~~~研究了一天,貌似ListPreference中根本就沒有什麼回調函數可以用
於是,向上一層,把注意力集中於SharedPreferences,
發現有這麼個接口:onSharedPreferenceChanged
抱著試試看的態度,實現了該接口,發現此方法可行,先將部分代碼分享如下:
package yinger.firewall;

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;

public class CallFireWall extends PreferenceActivity implements
        OnSharedPreferenceChangeListener {
    ListPreference lp = null;
    String whiteMode = "1";
    String blackMode = "2";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        this.setTitle("Ying_er" + "  Call Safe");
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(this);
        prefs.registerOnSharedPreferenceChangeListener(this);
        lp = (ListPreference) findPreference(getString(R.string.pref_mode_key));
    }

    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
            Preference preference) {
        // TODO Auto-generated method stub
        return super.onPreferenceTreeClick(preferenceScreen, preference);
    }
   
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
            String key) {
        // TODO Auto-generated method stub
        System.out.println("onSharedPreferenceChanged");
        if (key == getString(R.string.pref_mode_key)){
            System.out.println(lp.getValue());
            if(lp.getValue().equals(whiteMode)){
               
            }
        }
    }
}
注意:該事件需要注冊。既:
prefs.registerOnSharedPreferenceChangeListener(this);

最後更新:2017-04-02 06:51:45

  上一篇:go Android中webview的使用
  下一篇:go android中的圖形圖像-訪問圖片drawable