在我的listview中,每行都有edittext字段。当我点击"提交"按钮,我迭代所有行,并尝试从文本字段中获取值并编辑文本字段。例如,列表视图中有五行。用户一次只能看到三行。用户需要滚动才能看到其他行。 当我点击"提交"列表视图下方的按钮,我迭代所有行并尝试获取值。如果项目不可见,则它始终返回null。 因此,我应该如何尝试获取屏幕外的编辑文本字段的值。
ListView布局
$producers = strval($_POST['producers']);
$company = strval($_POST['company']);
$title = strval($_POST['title']);
列表视图项目布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="32dip"
android:orientation="horizontal" >
<TextView
android:id="@+id/txt_tv1"
android:layout_width="140dip"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_gravity="center_vertical"
android:text="@string/tv1"
android:textStyle="bold"/>
<View
android:layout_width="1dip"
android:layout_height="match_parent"
android:background="@color/white" />
<TextView
android:id="@+id/txt_tv2"
android:layout_width="70dip"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_vertical"
android:text="@string/tv2"
android:textStyle="bold"
android:ellipsize="none"
android:scrollHorizontally="false"/>
<View
android:layout_width="1dip"
android:layout_height="match_parent"
android:background="@color/white" />
<TextView
android:id="@+id/txt_tv3"
android:layout_width="70dip"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_vertical"
android:text="@string/tv3"
android:textStyle="bold"
android:ellipsize="none"
android:scrollHorizontally="false"/>
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="@dimen/padding"
android:layout_weight="1">
</ListView>
<Button
android:id="@+id/btn_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/submit"/>
</LinearLayout>
按钮单击事件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linear_item"
android:layout_width="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/txt_pck_tv1"
android:layout_width="140dip"
android:layout_height="wrap_content"
android:gravity="left"
android:text="AAAA"
android:textStyle="bold"/>
<View
android:layout_width="1dip"
android:layout_height="match_parent"
android:background="@color/white" />
<TextView
android:id="@+id/txt_pck_tv2"
android:layout_width="70dip"
android:layout_height="wrap_content"
android:gravity="right"
android:textStyle="bold"
android:textColor="@color/red"
android:text="BBB" />
<View
android:layout_width="1dip"
android:layout_height="match_parent"
android:background="@color/white" />
<EditText
android:id="@+id/txt_pck_edt1"
android:layout_width="70dip"
android:layout_height="match_parent"
android:layout_gravity="right"
android:ems="10"
android:gravity="right|center_vertical"
android:inputType="number"
android:textColor="@color/green"
android:textStyle="bold" />
</LinearLayout>
v = mListView.getChildAt(i);当孩子不在视野时返回null。 那么如何从中获取价值。 任何建议???
答案 0 :(得分:0)
这是关于ListView的一件事,它只为您提供当前屏幕上显示的视图。因此,当您的视图在屏幕上并更改时,您必须保存或维护数据,而不是单击按钮进行查看。
例如,你可以使用TextWatcher监听两者的onTextChanged事件,并在listview适配器位置的基础上保存数据。