0

我的应用程序包含 25 个编辑文本。gridView.setAdapter(new TextAdapter(this));我在适配器类的帮助下得到了这 25 个编辑文本,通过在活动类中给出 count=25 并在 gridView 中进行拟合。因此,编辑文本是动态生成的。但问题是我无法在编辑文本中设置初始值。这是因为 edittext 对象无法设置值。

假设我没有在编辑文本中设置任何初始值并继续我的应用程序。在更改方向后在以前的模式中输入的编辑文本中设置值时,同样的问题会重复。因为方向的改变创造了新的活动。即使我尝试过android:configChanges="orientation|keyboardHidden",但在我将值设置回**onConfigurationChanged()**. 因为我正在设置setContentView(); 在 onConfigurationChanged() 中,因为我需要相应的视图,但仍然无法使用 edittext 对象设置它们的值。

是否有任何解决方案来设置值?如果不是,我在想(可能是完全错误的方式,但作为新手请放轻松)将 onCreate() 方法内容移动到 Application 类。所以最初的部分是应用程序类,包括创建编辑文本。并在 onCreate() 方法中获取该 edittext 对象以设置值。可能吗?请建议。代码片段将不胜感激。

4

1 回答 1

1

您将需要修改 TextAdapter。将初始值存储在 String 数组中,String 数组元素的位置与 GridView 中 EditText 的位置对齐。

伪代码(未经测试):

public class TextAdapter extends BaseAdapter {

String [] initial_value = {"Initial Value 1", "Initial Value 2", "Initial Value 3",  ..., };

    public View getView(int pos, View view, ViewGroup viewGroup) {

        if (view == null) {
            LayoutInflater inflater = (LayoutInflater)    this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.edit_text_container, null);
        }

        (EditText) edtTemp = (EditText) view.findViewById(R.id.edit_text_id);
        edtTemp.setText(initial_value[pos]);
    }

}
于 2012-09-13T06:16:32.270 回答