將共享首選項中的字符串保存並在應用中的任意位置重新找回。
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