我正在使用具有大量视图的LinearLayout。我想在SharedPreferences中保存它们的可见性。在.xml中,视图具有不同的可见性状态。使用此代码,所有视图都是“可见的”。我从未使用过SharedPreferences,所以请尽量详细解释我做错了什么。
我不知道这是否重要但是Activity launchMode设置为“singleInstance”。
private ViewGroup XXX
protected void onRestart() {
super.onRestart();
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
for (int i = 1; i < linearLayoutXXX.getChildCount(); i++) {
linearLayoutXXX.getChildAt(i).setVisibility(
preferences.getInt(linearLayoutXXX.getChildAt(i).toString(), View.GONE));
}
}
protected void onStop() {
super.onStop();
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
for (int i = 1; i < linearLayoutXXX.getChildCount(); i++) {
if (linearLayoutXXX.getChildAt(i).getVisibility() == View.GONE) {
editor.putInt(linearLayoutXXX.getChildAt(i).toString(), View.GONE);
} else if (linearLayoutXXX.getChildAt(i).getVisibility() == View.VISIBLE) {
editor.putInt(linearLayoutXXX.getChildAt(i).toString(), View.VISIBLE);
} else {
editor.putInt(linearLayoutXXX.getChildAt(i).toString(), View.INVISIBLE);
}
}
editor.commit();
}