【发布时间】:2015-07-06 13:04:37
【问题描述】:
您好,谁能解释一下我做错了什么,因为我无法从 savedInstanceState 中获取变量,int "score" 每次我更改屏幕方向时都会重置变量。
int score;
EditText et;
String etString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.editText);
if (savedInstanceState != null) {
score = savedInstanceState.getInt("score");
et.setText(savedInstanceState.getString("etText"));
Log.d("TEST2", "score " + score);
} else {
score = 0;
}
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
etString = et.getText().toString();
outState.putString("etText", etString);
outState.putInt("score", score);
Log.d("TEST", "score " + score);
}
public void performAction(View v) {
switch (v.getId()) {
case R.id.button:
score += 1;
break;
case R.id.button2:
Toast.makeText(getApplicationContext(), "Score: " + score, Toast.LENGTH_LONG).show();
break;
}
}
如果您知道解决方案,请提供帮助。
【问题讨论】:
-
分数 = 0;更改屏幕方向后;即使我增加了它,它也更高了。