读书笔记--设备旋转与activity

1.设备旋转前保存数据

当屏幕旋转时会销毁当前Activity然后再新建一个Activity,这样会造成数据的丢失。通过覆盖onSaveInstanceState(Bundle outState)方法来保存数据。

 @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.i(TAG,"onSaveInstanceState");
        outState.putInt(KEY_INDEX,mCurrentIndex);
    }

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

        if (savedInstanceState!=null){
            mCurrentIndex=savedInstanceState.getInt(KEY_INDEX,0);
        }

        mQuestionTextView=(TextView)findViewById(R.id.question_text);
        updateQuestion();

        mTrueBtn= (Button) findViewById(R.id.true_btn);
        mFalseBtn= (Button) findViewById(R.id.false_btn);
        mNextButton= (Button) findViewById(R.id.next_button);
        mPrevBtn= (Button) findViewById(R.id.prev_button);
        mTrueBtn.setOnClickListener(this);
        mFalseBtn.setOnClickListener(this);
        mNextButton.setOnClickListener(this);
        mPrevBtn.setOnClickListener(this);
    }

有一点需要注意的是,Bundle中存储和恢复的数据只能是基本数据类型和可以实现Serializable接口的对象。

posted @ 2016-09-02 20:04  littlelionbiu  阅读(147)  评论(0编辑  收藏  举报