0

对于各自的模式,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 对象,这些值又是如何设置的?或者这个问题还有其他原因?

4

1 回答 1

1

我已经为您的要求创建了一个替代应用程序。我还没有使用网格视图,但我可以在没有 XML 的情况下添加任意数量的视图。该代码检查设备配置和视图大小,并将那么多行和列添加到布局中。这是一个基本示例,您可以根据需要对其进行修改。
这是代码的链接

如有任何疑问,请随时讨论。

于 2012-09-13T11:12:42.870 回答