使用PreferenceActivity时,如何获取ListPreference中选中的值

    xiaoxiao2021-12-14  35

    汗~~~研究了一天,貌似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);

    转载请注明原文地址: https://ju.6miu.com/read-963787.html

    最新回复(0)