我想恢复finalText的值,并在设备旋转时在TextView中显示它,但finalText没有恢复它的值。我已经为finalText设置了默认值,以检查它是否显示。finalText是onActivityResult()中的变量,所以我想恢复从其他活动中获得的值。
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);
}发布于 2017-02-02 15:53:01
尝尝这个
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);
}
}https://stackoverflow.com/questions/41996499
复制相似问题