如何在Android中保存/恢复视图状态?

时间:2014-10-23 12:47:39

标签: android

我有这个班级

public class MainActivity extends Activity {
    int mClicks = 1;

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

        final TextView clicksText = (TextView) findViewById(R.id.clicksText);
        final Button myButton = (Button) findViewById(R.id.myButton);
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mClicks++;
                clicksText.setText(mClicks + " clicks");
            }
        });
    }
}

是不是应该在onSaveInstanceState上保存视图状态并在onCreate恢复它?我单击按钮几次并旋转设备以找到与视图XML定义完全相同的UI。我不希望mClicks被恢复,因为这是我的工作,而不是框架,但TextView应该保持之前的X点击!值。我错了吗?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

默认onSaveInstanceState保存EditText文本(用户写的内容),但不保存TextView文本,因为默认情况下它不会更改。如果您想保存它,您需要明确地在onSaveInstanceState方法

中执行此操作