package cn.zadui.reader.view; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import cn.zadui.reader.R; import cn.zadui.reader.helper.Settings; public class AppSettings extends PreferenceActivity implements OnSharedPreferenceChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.addPreferencesFromResource(R.xml.preferences); // Preference interval=this.getPreferenceScreen().getPreference(1); // String sv=Settings.getStringPreferenceValue(this, Settings.PRE_SYNC_INTERVAL, Settings.DEF_SYNC_INTERVAL); // String[] values=this.getResources().getStringArray(R.array.sync_interval_values); // int i=0; // for(i=0;i<values.length;i++) if (values[i].equals(sv)) break; // interval.setSummary(getResources().getStringArray(R.array.sync_interval_items)[i]); int i=0; Preference wifi=this.getPreferenceScreen().getPreference(1); wifi.setSummary(Settings.getBooleanPreferenceValue(this, Settings.PRE_WIFI_ONLY, Settings.DEF_WIFI_ONLY) ? getResources().getString(R.string.wifi_only_enabled_summ) : getResources().getString(R.string.wifi_only_disabled_summ)); String[] values=this.getResources().getStringArray(R.array.image_quality_values); String sv=Settings.getStringPreferenceValue(this, Settings.PRE_IMAGE_QUALITY, Settings.DEF_IMAGE_QUALITY); Preference quality=this.getPreferenceScreen().getPreference(2); for(i=0;i<values.length;i++) if (values[i].equals(sv)) break; quality.setSummary(getResources().getStringArray(R.array.image_quality_items)[i]); values=this.getResources().getStringArray(R.array.max_archives_values); sv=Settings.getStringPreferenceValue(this, Settings.PRE_MAX_ARCHIVES, Settings.DEF_MAX_ARCHIVES); Preference maxArchives=this.getPreferenceScreen().getPreference(3); for(i=0;i<values.length;i++) if (values[i].equals(sv)) break; maxArchives.setSummary(getResources().getStringArray(R.array.max_archives)[i]); } static final String TAG="AppSettings"; @Override protected void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } @Override protected void onPause(){ super.onPause(); getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) { // if (key.equals(Settings.PRE_SYNC_INTERVAL)){ // Preference interval=this.getPreferenceScreen().getPreference(1); // String sv=Settings.getStringPreferenceValue(this, Settings.PRE_SYNC_INTERVAL, Settings.DEF_SYNC_INTERVAL); // String[] values=this.getResources().getStringArray(R.array.sync_interval_values); // int i=0; // for(;i<values.length;i++) if (values[i].equals(sv)) break; // interval.setSummary(getResources().getStringArray(R.array.sync_interval_items)[i]); // }else if(key.equals(Settings.PRE_WIFI_ONLY)){ Preference wifi=this.getPreferenceScreen().getPreference(1); wifi.setSummary(Settings.getBooleanPreferenceValue(this, key, false) ? getResources().getString(R.string.wifi_only_enabled_summ) : getResources().getString(R.string.wifi_only_disabled_summ)); }else if(key.equals(Settings.PRE_IMAGE_QUALITY)){ Preference quality=this.getPreferenceScreen().getPreference(2); String sv=Settings.getStringPreferenceValue(this, Settings.PRE_IMAGE_QUALITY, Settings.DEF_IMAGE_QUALITY); String[] values=this.getResources().getStringArray(R.array.image_quality_values); int i=0; for(;i<values.length;i++) if (values[i].equals(sv)) break; quality.setSummary(getResources().getStringArray(R.array.image_quality_items)[i]); }else if(key.equals(Settings.PRE_MAX_ARCHIVES)){ Preference maxArchives=this.getPreferenceScreen().getPreference(3); String sv=Settings.getStringPreferenceValue(this, Settings.PRE_MAX_ARCHIVES, Settings.DEF_MAX_ARCHIVES); String[] values=this.getResources().getStringArray(R.array.max_archives_values); int i=0; for(;i<values.length;i++) if (values[i].equals(sv)) break; maxArchives.setSummary(getResources().getStringArray(R.array.max_archives)[i]); } } }