如何获取所有editText的文本?
我需要在所有edittext上循环。
我有16个editText,并且在循环中需要轮流获取所有文本。
我正在尝试
TableLayout or = (TableLayout) findViewById(R.id.TableLayoutBells);
EditText editTextBells = (EditText) or.getChildAt(i).findViewById(R.id.TableLayoutBells);
但它不起作用
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayoutScheduleOfBellsEdit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back1"
android:visibility="visible"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imageViewTopScheduleOfBellsEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/top_schedule_of_bells" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/imageViewTopScheduleOfBellsEdit"
android:layout_above="@+id/LinearLayoutOkCancelScheduleOfBellsEdit">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/TableLayoutBells"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/grid_view_notes_background" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" >
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="1st lesson:"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/EditText1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="50"
android:background="@drawable/edittext_edit_text_holo_light"
android:ems="10"
android:inputType="time"
android:maxLength="5"
android:tag="0" >
<requestFocus />
</EditText>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="—"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<EditText
android:id="@+id/EditText01"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="50"
android:background="@drawable/edittext_edit_text_holo_light"
android:ems="10"
android:inputType="time"
android:maxLength="5"
android:tag="1" />
</TableRow>
...
</TableLayout>
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/LinearLayoutOkCancelScheduleOfBellsEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageViewCancelScheduleOfBellsEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cancel_click" />
<ImageView
android:id="@+id/imageViewOkScheduleOfBellsEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:src="@drawable/ok_click" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:0)
也类似于:Method to get all EditTexts in a View
我首先要说明的是,如果你只需要遍历编辑文本,你可以将它们的每个视图ID添加到数组列表中,如:
ArrayList<EditText> list = new ArrayList<EditTexts>();
EditText edit = (EditText) view.findViewById(R.id.X);
list.add(edit);
然后循环遍历它们以获取所需的文本,例如:
for (EditText edit : list){
String text = edit.getText().toString();
}
- 或者如果您需要使用您定义的表格布局,那么您是否尝试删除最后一行的结尾findViewById?
TableLayout or = (TableLayout) findViewById(R.id.TableLayoutBells);
EditText editTextBells = (EditText) or.getChildAt(i);