0

我创建了一个包含带有自定义行视图的列表视图的活动。

行视图:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:padding="1dp" >

    <TableRow
        android:id="@+id/row1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemID"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:visibility="gone" />

        <TextView
            android:id="@+id/itemDescription"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2" />

        <TextView
            android:id="@+id/itemRequested"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <EditText
            android:id="@+id/itemCompleted"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="number" />
    </TableRow>

</TableLayout>

我正在使用我创建的自定义适配器类将 ArrayList 绑定到我的列表视图。这是我的项目类:

public class Item {

    @SerializedName("ItemID")
    public int ItemID;

    @SerializedName("ItemDescription")
    public String ItemDescription;

    @SerializedName("ItemModel")
    public String ItemModel;    

    @SerializedName("ItemCartons")
    public int ItemCartons;

}

我正在做的是在活动列表视图中显示我的 ArrayList,并使用完美运行的自定义布局。当用户查看列表视图时,我希望他们能够在 itemCompleted EditText 控件中输入一个值,以便我可以使用已完成的数量更新项目。当我的更新事件被触发(操作栏上的按钮)时,我正在遍历列表视图并从自定义布局中获取值,如下所示:

            for (int i = 0; i < mListView.getCount(); i++) {
            View v = mListView.getAdapter().getView(i, null, null);
            TextView requested = (TextView) v
                    .findViewById(R.id.itemRequested);
            EditText completed = (EditText) v
                    .findViewById(R.id.itemCompleted);
            TextView itemID = (TextView) v.findViewById(R.id.itemID);

            int req = Integer.parseInt((String) requested.getText());
            int comp = Integer.parseInt(completed.getText().toString());
            int id = Integer.parseInt((String) itemID.getText());

            if (comp <= req) {
                //update item here

            } else {
                // qty is too much
                return;
            }
        }

我的问题是我无法检索在 itemCompleted EditText 控件中输入的值。它始终拉取默认值,而不是用户输入的值。有没有办法可以从 EditText 中提取输入的值?

4

0 回答 0