有人能帮助我吗?
例如,有以下布局:
main.xml中:
<LinearLayout
android:id="@+id/linearLayout_item"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout_item_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/editText_item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
... Other views, skipped ...
</LinearLayout>
<Button
android:id="@+id/button_add_alias"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_commit"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
我使用button_add_alias
根据需要添加视图。
((Button) findViewById(R.id.button_add_alias))
.setOnClickListener(new View.OnClickListener() {
int position = 1;
public void onClick (View v) {
View view = getLayoutInflater().inflate(R.layout.alias, null);
((LinearLayout) findViewById(R.id.linearLayout_item)).addView(view, position);
position++;
}
});
ALIAS.XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout_alias"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/editText_alias"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
... Other views, skipped ...
</LinearLayout>
那么,从编程方式添加editText_alias
视图获取数据的最佳方法是什么?
答案 0 :(得分:0)
如果我了解您要抓取编辑文本的目的,您应该可以调用
view.findViewById(R.id.editText_alias)
答案 1 :(得分:0)
首先,使用getChildAt()
遍历LinearLayout。
然后,从您的子视图中检索第一个孩子(在您的情况下将是EditText
)。
LinearLayout parent = (LinearLayout) findViewById(R.id.linearLayout_item);
for (int i = 0; i != parent.getChildCount(); i++) {
if (parent.getChildAt(i).getId() == R.id.linearLayout_alias) {
LinearLayout alias = (LinearLayout) parent.getChildAt(i);
EditText editAlias = (EditText) alias.getChildAt(0);
// do what you want with the EditText
}
}