在Android中,当屏幕旋转时,Activity会重新创建,这可能会导致编辑文本的内容丢失。为了解决这个问题,可以使用以下方法之一:
public class MainActivity extends AppCompatActivity {
private EditText editText;
private static final String KEY_TEXT = "text";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
if (savedInstanceState != null) {
String text = savedInstanceState.getString(KEY_TEXT);
editText.setText(text);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(KEY_TEXT, editText.getText().toString());
}
}
android:configChanges
属性,以防止Activity重新创建。
然后,重写Activity的onConfigurationChanged
方法来处理屏幕旋转事件。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// 在此处理屏幕旋转事件
}
使用这两种方法之一,可以确保在屏幕旋转后编辑文本不会改变。