android - 屏幕旋转android后背景颜色变化

标签 android

我创建了一个简单的 Android 应用程序,允许用户单击按钮并更改背景颜色。但是,在我旋转设备后,颜色变回默认值。我试图在 onSavedInstanceState() 方法中保存我的颜色,但无济于事。请参阅下面的代码

public class MainActivity extends Activity {

    Button button1;
    Button button2;
    LinearLayout background;
    private static String COLOR_VALUE;
    int mColor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        background = (LinearLayout)findViewById(R.id.main);
        if (savedInstanceState != null){
            mColor = savedInstanceState.getInt(COLOR_VALUE);
        }

        button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mColor = Color.parseColor("#ff0000");
                background.setBackgroundColor(mColor);
            }
        });

        button2 = (Button)findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mColor = Color.parseColor("#fff000");
                background.setBackgroundColor(mColor);
            }
        });
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
        outState.putInt(COLOR_VALUE, mColor);
    }
}

最佳答案

您恢复了值但忘记了更新 View ,所以:

if (savedInstanceState != null){
    mColor = savedInstanceState.getInt(COLOR_VALUE);
    background.setBackgroundColor(mColor);
}

关于android - 屏幕旋转android后背景颜色变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345458/

相关文章:

android - 用退格键删除整个 Spannable

android - 以编程方式更改 Spinner 样式

java - OpenGL ES 2.0 和 OpenGL ES 3.0 的单一代码

android - 在 ImageView 中设置大图像从 res 崩溃应用程序

java - 无法比较空字符串

java - 读取保存在/res 或/asset 文件夹中的文件?安卓

java - 访问线程以从另一个方法通知它(Android 应用程序)

android - WebView loadDataWithBaseURL 不适用于应用程序文件夹中的文件

java - 旋转期间无法保存 fragment 状态

java - 短信未发送