したがって、画面の上部に EditText と Button がある非常に基本的なレイアウトがあります。誰かがボタンを押すと、EditText 入力がテキスト ビューに保存され、EditText とボタンが非表示になります。そのための私のコードは次のとおりです。
public void setName(View view){
EditText editText = (EditText) findViewById(R.id.getUserName);
Button button = (Button) findViewById(R.id.setName);
TextView textView = (TextView) findViewById(R.id.displayName);
playerName = editText.getText().toString();
textView.setText(playerName);
editText.setVisibility(View.GONE);
button.setVisibility(View.GONE);
textView.setTextSize(40);
textView.setVisibility(View.VISIBLE);
}
画面が回転すると、次のように onCreate が再度呼び出されます。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_score_keeper);
// Identifies a textView
TextView textView = (TextView) findViewById(R.id.displayName);
// Hide that textView until later
textView.setVisibility(View.GONE);
// Set player name to default value
playerName = "Player Name";
// Set score to default value
score = 0;
}
これの問題は、EditText と Button を非表示にしたという事実が失われ、TextView も再び非表示になることです。
これらのプロパティをすべて同じに保つにはどうすればよいですか? (たとえば、テキストを同じに保つ、テキスト サイズ、ビューの可視性など); onSaveInstanceState で行うことは可能ですか?
みんなありがとう。
OSFTW