package org.carelife.creader.ui.fragment; import org.carelife.creader.R; import org.carelife.creader.util.LogUtil; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.text.TextUtils; public class GlobalSettingFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{ private static String VERSION = "version_key"; private static String CACHE = "cache"; private Preference cache; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref); findPreference(GlobalSettingFragment.VERSION).setSummary( buildVersionInfo()); cache = findPreference(GlobalSettingFragment.CACHE); buildSummary(); PreferenceManager.getDefaultSharedPreferences(getActivity()).registerOnSharedPreferenceChangeListener(this); } private void buildSummary() { String value = PreferenceManager.getDefaultSharedPreferences( getActivity()).getString(GlobalSettingFragment.CACHE, "10"); cache.setSummary(getActivity().getResources().getStringArray( R.array.cache)[(Integer)(Integer.valueOf(value)/20)]); } private String buildVersionInfo() { String version = ""; PackageManager packageManager = getActivity().getPackageManager(); PackageInfo packInfo = null; try { packInfo = packageManager.getPackageInfo(getActivity() .getPackageName(), 0); } catch (PackageManager.NameNotFoundException e) { LogUtil.e(e.getMessage()); } if (packInfo != null) { version = packInfo.versionName; } if (!TextUtils.isEmpty(version)) { return version; } else { return ""; } } @Override public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) { if (arg1.equals(GlobalSettingFragment.CACHE)) { } buildSummary(); } }