更改屏幕方向后,TextView内容将丢失

Ale*_*x F 9 lifecycle android

观察我在Android模拟器中的应用程序行为,我发现在更改屏幕方向后会保留EditText内容(Ctrl + F11).但TextView内容重置为其初始值,并不保留程序设置的最新信息.根据定义,这种行为?我该怎么做才能保留这些内容?

bid*_*h.r 11

您可以savedInstanceBundle通过覆盖活动中的两个方法来使用它来保持数据,类似于以下内容:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // Save state to the savedInstanceState
  savedInstanceState.putString("MyString", textview.getText());

}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore state from savedInstanceState
  String myString = savedInstanceState.getString("MyString");
  textview.setText(myString);
}
Run Code Online (Sandbox Code Playgroud)

将您的商品添加到商品BundleonSaveInstanceState,并在此期间重新阅读onRestoreInstanceState.这与在创建活动时通过意图传递值的方式类似.


Dur*_*amy 11

TextView中 使用此属性android:freezesText="true".

  • 这似乎还不够.还有什么要补充的吗? (3认同)