将共享首选项中的字符串保存并在应用中的任意位置重新找回。
public class PreferencesData {
public static void saveString(Context context, String key, String value) {
SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(context);
sharedPrefs.edit().putString(key, value).commit();
}
public static String getString(Context context, String key, String defaultValue) {
SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(context);
return sharedPrefs.getString(key, defaultValue);
}
}
用法:
PreferencesData.saveString(context, "mynote", "Sherlock is weird");
// retrieve
String note = PreferencesData.getString(context, "mynote", "");
使用此功能可以节省暂停字符串,并重新创建它的onCreate,或在任何你需要
同样的方法可以很容易地用于信息其他简单的类型。
对于你的使用情况:
public class PreferencesData {
public static void saveInt(Context context, String key, int value) {
SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(context);
sharedPrefs.edit().putInt(key, value).commit();
}
public static int getInt(Context context, String key, int defaultValue) {
SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(context);
return sharedPrefs.getInt(key, defaultValue);
}
}
在您的代码:
mPager = (ViewPager) findViewById(R.id.pager);
DialerPagerAdapter viewpageradapter = new DialerPagerAdapter(fm);
if (savedInstanceState != null) {
if (savedInstanceState.getInt("tab") != -1) {
// this could also be saved with PreferencesData
// but if you want the app to start at the first
// tab when device is restarted or recreated, this is fine.
mPager.setCurrentItem(savedInstanceState.getInt("tab"));
}
}
// defaults to 0 if first startup after install
int pagerId = PreferencesData.getInt(this, "pagerId", 0);
mPager.setId(pagerId);
mPager.setOnPageChangeListener(ViewPagerListener);
mPager.setAdapter(viewpageradapter);
而在的onPause()
PreferencesData.saveInt(this, "pagerId", mPager.getId());
在我看来不是很好的建议:HTTP://计算器.com/questions/7818717/why-not-use-always-androidconfigchanges-keyboardhiddenorientation – cYrixmorten
Ya我会用@cYrixmorten去它不是g请添加。 – Venkatraman
configChanges基本上是一个黑客,应该只能作为最后的手段 – Philio