我正在构建我的第一个应用程序,几乎完成了。(耶!)现在我所要做的就是为 onConfigurationChange 设置 Java,以便在更改方向以及拉出键盘时使用。首先,问题是当方向改变时,所有东西都会被删除,因为 setContentView 方法放置了一个新的布局。这当然是有道理的,但是我想知道是否有任何方法或可能的解决方法可以让 edittext 和 textview 值在方向/键盘更改时保持不变。我尝试了各种方法,例如在 setContentView 之前获取字符串值,但是我发现这只会导致 NullPointerException。
基本上我试图保持edittext和textview的值与方向或任何变化相同。
这是我的代码的简要摘要,以供参考
这不是实际的代码,只是我正在做的总结。
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//do some stuff that is the core of the app. Nothing that would impact this question though
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.landscape);
// same code that was within the onCreate. Just doing stuff related to my app
}if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
setContentView(R.layout.main);
// same code that was within the onCreate. Just doing stuff related to my app
}
}
' }
是的,我确实在我的 AndroidManifest 文件中写了 android:configChanges="orientation|keyboardHidden" 该应用程序正常工作,我只是没有更新文本 viwes 和 edittexts。谢谢!