Android 从列表视图中获取值

Android 从列表视图中获取值,android,listview,Android,Listview,我试图获取一个listview的值,它有一个edittext供用户放置这些值,我在保存信息时获取这些值。我得到了它;问题是,我使用listview.getchildat(I),我只能得到屏幕上可见的子项,但有时它们超过50个,我不能得到超过8个可见的子项,我想看看是否有任何方法可以获得不可见的值。这是我的代码,我只有可见的子项: for (i = 0; i < feedList.size(); i++) { View v = lv.getChildAt(i);

我试图获取一个listview的值,它有一个edittext供用户放置这些值,我在保存信息时获取这些值。我得到了它;问题是,我使用listview.getchildat(I),我只能得到屏幕上可见的子项,但有时它们超过50个,我不能得到超过8个可见的子项,我想看看是否有任何方法可以获得不可见的值。这是我的代码,我只有可见的子项:

for (i = 0; i < feedList.size(); i++) {
            View v = lv.getChildAt(i);
            System.out.println("Posicion i: " + i);
            TextView cobro = null;
            try {

                cobro = (TextView) v.findViewById(R.id.col_cobro);
                System.out.println("CobroValidador: " + cobro.getText().toString());
                sumaValidaCobro += Convert(cobro.getText().toString());
                tstSuma += Convert(cobro.getText().toString());
            } catch (Exception ex) {
                validaCobrado++;
                System.out.println("Valida cobrado: " + validaCobrado);
          //      tstSuma += Convert(cobro.getText().toString());

            }
        }
我需要得到最后一列的新值,这是一个编辑文本

FeedList是加载listview的初始适配器,但用户可以在listview中手动输入值。当我保存时,我不能使用原件,我需要获得用户输入的所有数据。有什么办法可以做到这一点


问候。

ListView
有一个回收机制,invisibel项目可能会被回收并丢失它们所持有的数据。有关更多详细信息,请参阅

如果您希望从
列表视图中的
EditText
中保留数据,您可能需要实现自己的适配器,并在膨胀项目时在每个
EditText
上放置一个侦听器


另外,.

我解决了这个问题,从ListView改为RecycleView,效果非常好

我添加了ListView适配器,我在adapter@Heisenberg06不管列号如何,您仍然可以这样尝试。只需将
EditText
替换为列表项类型(如
LinearLayout
等)。@Heisenberg06您可能想在我的edit中查看我的另一个想法您想用register EditText说什么?@Heisenberg06 by
register()
我的意思是“保存”
EditText
的处理程序……或者换一种方式,将
EditText
的这些实例发送到您的活动中,并保存它们,这样您就可以在以后从它们中获取
getText()
。可以将<代码> RealStor()/Case>视为父活动中的一种回调方法。(抱歉我的英语不好:P)我解决了这个问题,从ListView改为RecycleView,效果非常好
 SimpleAdapter simpleAdapter = new SimpleAdapter(this, feedList, R.layout.view_item, new String[]{"doc", "emp", "original", "saldo", "cobro"}, new int[]{R.id.col_doc_id, R.id.col_emp, R.id.col_original, R.id.col_saldo, R.id.col_cobro});
        lv.setAdapter(simpleAdapter);