从ListView获取所有EditText的值

时间:2017-07-09 07:39:30

标签: android listview android-edittext

我的Layout中有一个Listview,我希望从ListView获取所有EditText的值,无论它是否在屏幕上可见。

我是按照以下方式进行的:

if(isset($_POST['to'])){
   // send email 
} else {
    die("forbidden! you can not open this file explicitly!")
}

使用childView2我得到了可见的EditText的正确值,但是使用ChildView1我总是将EditText的值变为空,长度始终为0.

我也尝试过使用

String Quantity = "";
for (int i=0; i<lv_order.getAdapter().getCount(); i++) {

        View childView = lv_order.getAdapter().getView(i,null,lv_order);
        View childView2 = getViewByPosition(i,lv_order);

        EditText editText = (EditText) childView.findViewById(R.id.layout_model_ETQuantity);
        TextView textView = (TextView) childView.findViewById(R.id.layout_model_Model);

        EditText editText1 = (EditText) childView2.findViewById(R.id.layout_model_ETQuantity);

        if(editText.length() > 0) {
            Quantity = Quantity + " " + editText.getText().toString();
        }
}

public View getViewByPosition(int position, ListView listView) {
    final int firstListItemPosition = listView.getFirstVisiblePosition();
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

    if (position < firstListItemPosition || position > lastListItemPosition ) {
        return listView.getAdapter().getView(position, null, listView);
    } else {
        final int childIndex = position - firstListItemPosition;
        return listView.getChildAt(childIndex);
    }
}

在for循环中但是当应用程序尝试获取不可见的ListView子级的值时应用程序崩溃。

更新

适配器类

View childView = lv_order.getChildAt(i);

0 个答案:

没有答案