我正在尝试获取listview的值,该列表视图具有用于放置值的用户的edittext,并在保存信息时获取它们。我知道了;问题是我使用listview.getchildat(i),我只能得到屏幕上可见的孩子,但有时他们超过50个孩子,我不能得到超过8个可见,我想看到如果有任何方法可以获得值不可见。这是我的代码,我只看到可见的孩子:
(function($) {
$.fn.MyCombobox = function(options) {
var settings = $.extend({
selector: '.myselector'
}, options);
};
$.fn.MyCombobox.clear = function() {
$(settings.selector).find('input').val('');
};
}(jQuery));
我正在使用带有4列的listview,这是适配器。
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());
}
}
我需要获取最后一个col的新值,它是一个EditText
FeedList是用于加载列表视图的初始适配器,但用户可以在列表视图中手动输入值。当我保存时我无法使用原件,我需要获取用户输入的所有数据。有没有办法实现这个目标?
问候。
答案 0 :(得分:0)
ListView
具有回收机制,可能会回收invisibel项目并丢失其持有的数据。有关详细信息,请参阅this answer。
如果您希望保留EditTexts
中ListView
的数据,您可能需要实现自己的适配器,并在对项目进行充气时为每个EditText
添加一个监听器。
另外,For a more modern, flexible, and performant approach to displaying lists, use RecyclerView。
答案 1 :(得分:0)
我解决了这个问题,从ListView更改为RecycleView,效果非常好