我有两个并排放置的GridView。
第一个GridView包含变量对象,在本例中为一些EditTexts,具体取决于游戏模式。
第二个GridView包含标记行的TextView。
因为我使用第一个GridView来处理许多不同的事情,所以我一直在以编程方式创建EditText对象。但是,我很难让它们的大小与EditText行标记匹配。
1)我应该在xml中构建我的EditText对象(如果是这样,我将把它放在哪里,以及我必须设置哪些属性)?
2)如果以编程方式创建EditTexts是正常的,我如何通过代码调整它们以与行号对齐?
从下面推荐的布局加载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;
}
答案 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总是更好。所以尽量避免以实用的方式创建视图,直到它唯一的方式。