android - 遍历 ListView 并获取 EditText-Field 值

标签 android listview android-edittext

我创建了一个 ListView (myList),每行都有一个 EditText-Field (R.id.mannschaften)。在 ListView 下,我创建了一个 Button 并在 OnCreate() 方法中为其设置了一个 OnClickListener。 现在,当单击 Button 时,我想遍历 ListView 并获取每一行中 EditText-Field 的值并将它们保存在 String-List 中。但是我该怎么做呢?

这是我的代码:

private void ButtonClick() {
    /** get all values of the EditText-Fields */
    View v;
    ArrayList<String> mannschaftsnamen = new ArrayList<String>();
    EditText et;

    for (int i = 0; i < myList.getCount(); i++) {
        v = myList.getChildAt(i);
        et = (EditText) v.findViewById(R.id.mannschaften);
        mannschaftsnamen.add(et.getText().toString());
    }
    .....
}

我已经知道,getChildAt 仅适用于可见行,但我不知道如何以不同的方式进行操作。

最佳答案

当您使用 myList.getAdapter().getView(i,null,null) 时,您将获得项目 View 的新实例,请尝试 ListView.getChildAt(position) 方法如下:

private void ButtonClick() {
    /** get all values of the EditText-Fields */
    View v;
    ArrayList<String> mannschaftsnamen = new ArrayList<String>();
    EditText et;
    for (int i = 0; i < myList.getCount(); i++) {
        v = myList.getChildAt(i);
        et = (EditText) v.findViewById(R.id.editText1);
        mannschaftsnamen.add(et.getText().toString());
    }
....
}

关于android - 遍历 ListView 并获取 EditText-Field 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14293740/

相关文章:

jquery - 寻找一种方法来动态添加更多列表到 jQuery Mobile ListView 的底部

android - 设置 LinearLayout 相对于同一容器中其他 LinearLayout 的高度

javascript - 如何在 EditText 中显示当前 url - android studio

android - android键盘上没有 "Go"按钮

java - Android Studio 变量未从函数调用中更新

Android - 防止 Activity 在停留在后台后重新启动

android - 来自 SVG 的 Android 和 iOS Assets

android - UnwindResume 等链接错误(安卓交叉编译)

java - 在 ListView 上显示 EditText 中的文本

Android TextChangedListener 和 OnKeyListener 干扰