首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onRestoreInstanceState()没有恢复值

onRestoreInstanceState()没有恢复值
EN

Stack Overflow用户
提问于 2017-02-02 15:32:57
回答 1查看 126关注 0票数 0

我想恢复finalText的值,并在设备旋转时在TextView中显示它,但finalText没有恢复它的值。我已经为finalText设置了默认值,以检查它是否显示。finalTextonActivityResult()中的变量,所以我想恢复从其他活动中获得的值。

代码语言:javascript
复制
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final String REQUEST_RESULT = "REQUEST_RESULT";
public static final String KEY_COUNTER = "COUNTER";
private String finalText = "Default";

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

public void onClick(View view){
    Intent intent = new Intent(this, secondActivity.class);
    EditText editText = (EditText) findViewById(R.id.text);
    String text = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, text);
    startActivityForResult(intent, 2);
}

@Override
protected void onActivityResult(int comingFrom, int resultCode, Intent data){
    super.onActivityResult(comingFrom, resultCode, data);
    if (resultCode == RESULT_OK){
        TextView textView = (TextView) findViewById(R.id.textView1);
        finalText = Integer.toString(comingFrom) + Integer.toString(data.getIntExtra(REQUEST_RESULT, 0)) + resultCode;
        textView.setText(finalText);
    }
}

@Override
protected void onSaveInstanceState(Bundle outState){
    super.onSaveInstanceState(outState);
    outState.putString(KEY_COUNTER, finalText);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
    super.onRestoreInstanceState(savedInstanceState);
    finalText = savedInstanceState.getString(KEY_COUNTER);
}
EN

回答 1

Stack Overflow用户

发布于 2017-02-02 15:53:01

尝尝这个

代码语言:javascript
复制
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  finalText = savedInstanceState.getString(KEY_COUNTER);
  textView = (TextView) findViewById(R.id.textView1);
  textView.setText(finalText);
}

@Override
protected void onActivityResult(int comingFrom, int resultCode, Intent data){
  super.onActivityResult(comingFrom, resultCode, data);
  if (resultCode == RESULT_OK){
    finalText = Integer.toString(comingFrom) + Integer.toString(data.getIntExtra(REQUEST_RESULT, 0)) + resultCode;
    textView.setText(finalText);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41996499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档