Android EditText在GridView中调整大小

时间:2011-11-10 17:42:37

标签: android layout gridview android-edittext params

我有两个并排放置的GridView。

第一个GridView包含变量对象,在本例中为一些EditTexts,具体取决于游戏模式。

第二个GridView包含标记行的TextView。

因为我使用第一个GridView来处理许多不同的事情,所以我一直在以编程方式创建EditText对象。但是,我很难让它们的大小与EditText行标记匹配。

1)我应该在xml中构建我的EditText对象(如果是这样,我将把它放在哪里,以及我必须设置哪些属性)?

2)如果以编程方式创建EditTexts是正常的,我如何通过代码调整它们以与行号对齐?

view from the emulator

从下面推荐的布局加载GridView的对象后,我收到一个抱怨LayoutParams的ClassCastException:

public View getView(int position, View convertView, ViewGroup parent) {
            EditText textbox;
            View MyView = convertView;
            if (convertView == null) {

                LayoutInflater li = getLayoutInflater();
                MyView = li.inflate(R.layout.edittextfull, null);
                textbox = (EditText) MyView.findViewById(R.id.textbox);

            }
            else 
                textbox = (EditText) convertView;
            return textbox;
}

1 个答案:

答案 0 :(得分:1)

这是你的行

<LinearLayout android:layout_width="fill_parent"
                  android:layout_height="wrap_content" >
                <EditText android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_gravity="center_vertical"
                         android:layout_weight="1"
                 />
                 <TextView  android:layout_width="wrap_content" 
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:text="row 1"
                 />              
    </LinearLayout>

使用xml总是更好。所以尽量避免以实用的方式创建视图,直到它唯一的方式。