0
私はAndroidスタジオでこの独特の問題を抱えています。私は画面の回転を理解するために、このシンプルなアプリを作った。私は、画面が回転してアクティビティが破棄されるときのコンセプトを理解し、onCreateメソッドを呼び出す。データを保存するには、onSaveInstanceStateメソッドをオーバーライドしてバンドルに格納する必要があります。私は中央に2つのボタンと数字でアプリを作った。クリックするボタンに応じて数字が変わります。しかし何らかの理由で、画面を回転させると数値がリセットされますが、画面が回転する前の値は保持されます。たとえば、数値を5に設定すると、数値がゼロになりますが、数値を大きくすると、数値が4になると6になります。何とか値は保持されていますが、どうしてか分かりません。ここでは、それが回転しながら値を示していますが増減するとき、正しい値を持っていない理由ですでAndroidスクリーン回転
amount.setText(Integer.toString(change));
のコードのonCreateを逃したコード
package com.example.android.application;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button upButton, downButton;
TextView amount;
int change;
private static final String banza = "Bundle";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
change = savedInstanceState.getInt(banza);
}
upButton = (Button) findViewById(R.id.activity_main_up_button);
downButton = (Button) findViewById(R.id.activity_main_down_button);
amount = (TextView) findViewById(R.id.activity_main_textview_id);
upButton.setOnClickListener(this);
downButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == upButton) {
change++;
amount.setText(Integer.toString(change));
}
if (view == downButton) {
change--;
amount.setText(Integer.toString(change));
}
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt(banza, change);
}
}
@ Suraj Nair、うわー私はそれを逃す方法を知りません、ありがとう! – Mykey
あなたは答えを受け入れる気がありますか? –
@ Suraj Nairはちょうどしました! – Mykey