保存可见性视图SharedPreferences

时间:2013-03-05 17:46:45

标签: android sharedpreferences android-linearlayout visibility

我正在使用具有大量视图的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();
}

0 个答案:

没有答案