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


          posted on 2011-04-05 15:47 Ying-er 閱讀(8206) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 鄂温| 阿拉尔市| 乐业县| 石柱| 乌鲁木齐县| 沧源| 宁南县| 古浪县| 洪洞县| 长丰县| 宜春市| 慈溪市| 宁城县| 本溪市| 吕梁市| 皮山县| 娱乐| 区。| 康保县| 华蓥市| 社旗县| 阳新县| 竹北市| 思南县| 孙吴县| 刚察县| 布拖县| 招远市| 庆阳市| 鄂尔多斯市| 留坝县| 宝应县| 民勤县| 神池县| 炎陵县| 云南省| 香港 | 铜川市| 广汉市| 那曲县| 景东|