对于各自的模式,layout 和 layout-land 中有两个不同的 xml 文件。因为即使方向改变,我也想在编辑文本中设置值,所以我android:configChanges="orientation|keyboardHidden"
在清单文件中使用。这会再次停用 onCreate() 方法的执行,并且不会破坏当前活动。
我的应用程序中有两个框架。第一帧包含 25 个编辑文本,第二帧包含 10 个按钮。因此,在纵向模式下,这些帧是一个接一个,而在横向模式下,这些帧是一个接一个。为了根据模式得到这个视图,我setContentView(R.layout.main);
在onConfigurationChanged()
方法中写了。但我的问题是我能够将已经在 editTexts 中输入的值存储在onConfigurationChanged()
. 但是在设置为相应的布局后,我无法将值设置回编辑文本。因为我得到了各自的布局,但编辑文本为空。以下代码片段概述了我的问题。
public void onCreate()
{
setContentView(R.layout.main);
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(new EditTextAdapter(this)); //This creates 25 edittexts in the gridview which is in first frame.
}
public void getEditTexts()//getting the edittext objects here in the activity class
{
editText1=gridView.getChildAt(k);
...........
...........
}
public void onConfigurationChanged()
{
String s1=editText1.getText().toString();//Here I am using technique to store the values.
setContentView(R.layout.main);
gridView.setAdapter(new EditTextAdapter(this));
getEditTexts();
editText1.setText(s1); //here is my problem. I am unable to set values back in the editText.
}
我哪里错了?如果在以前的模式下设置了值,如何在当前模式下的 25 个编辑文本中像这样设置值。请建议。在这里,我猜这些值是在旧的 edittext 对象本身中设置的,即使模式发生了变化。如何在新的 edittext 对象中设置值?如果当前布局中不存在旧的 edittext 对象,这些值又是如何设置的?或者这个问题还有其他原因?