【发布时间】:2013-09-08 11:11:59
【问题描述】:
所以我有一个非常基本的布局,在屏幕顶部有一个 EditText 和一个按钮。当有人点击按钮时,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
【问题讨论】:
标签: java android android-activity android-lifecycle