汗~~~研究了一天,貌似ListPreference中根本就沒有什么回調(diào)函數(shù)可以用
          于是,向上一層,把注意力集中于SharedPreferences,
          發(fā)現(xiàn)有這么個(gè)接口:onSharedPreferenceChanged
          抱著試試看的態(tài)度,實(shí)現(xiàn)了該接口,發(fā)現(xiàn)此方法可行,先將部分代碼分享如下:
          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)){
                          
                      }
                  }
              }
          }

          注意:該事件需要注冊(cè)。既:
          prefs.registerOnSharedPreferenceChangeListener(this);


          posted on 2011-04-05 15:47 Ying-er 閱讀(8206) 評(píng)論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 永德县| 桐城市| 旅游| 巴林右旗| 贵阳市| 开远市| 陆丰市| 丰原市| 兰溪市| 东乡县| 礼泉县| 大兴区| 遂昌县| 潮安县| 禄丰县| 正安县| 长宁县| 兴文县| 阳东县| 柘荣县| 于都县| 轮台县| 高要市| 全椒县| 六枝特区| 梁平县| 通化县| 广宁县| 岫岩| 巩义市| 鄂温| 广饶县| 大渡口区| 界首市| 潢川县| 红河县| 精河县| 阿勒泰市| 大同市| 土默特右旗| 吕梁市|