Android 用于循环适配器更新的 Studio Listview
Android Studio Listview for loop adapter update
我有一个问题,我有一个 for 循环,循环遍历数组列表并检查值是否是某个值,如果是,它会删除列表视图中的一行....不过我遇到了麻烦,这是代码...
for (int i=0; i<displayList.size(); i++)
{
Object toRemove = mAdapter.getItem(i);
Log.e("Counter+++",String.valueOf(i));
if (!firstname.equals("")) {
if (firstnamefilterstring.equals("Contains"))
{
if (!displayList.get(i).getFirstname().contains(firstname))
{
//displayList.remove(listView.getItemAtPosition(i)); doesnt work
// displayList.remove(toRemove); doesnt work either
L.e("1");
}
问题是通过调试我意识到这个循环只运行了 6/12 次(for 循环有 12 个元素大),我不知道为什么......通过一些额外的调试,我意识到 [=20 的两行=] 如果你将它们注释掉,它运行良好(12 次),但是对于这两行中的任何一行它都不会......我在这里迷路了,
它运行一半时间的原因是您要从显示列表中删除项目,因此 displayList.remove
。
The java.util.ArrayList.remove(int index) method removes the element
at the specified position in this list. Shifts any subsequent elements
to the left (subtracts one from their indices).
我有一个问题,我有一个 for 循环,循环遍历数组列表并检查值是否是某个值,如果是,它会删除列表视图中的一行....不过我遇到了麻烦,这是代码...
for (int i=0; i<displayList.size(); i++)
{
Object toRemove = mAdapter.getItem(i);
Log.e("Counter+++",String.valueOf(i));
if (!firstname.equals("")) {
if (firstnamefilterstring.equals("Contains"))
{
if (!displayList.get(i).getFirstname().contains(firstname))
{
//displayList.remove(listView.getItemAtPosition(i)); doesnt work
// displayList.remove(toRemove); doesnt work either
L.e("1");
}
它运行一半时间的原因是您要从显示列表中删除项目,因此 displayList.remove
。
The java.util.ArrayList.remove(int index) method removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices).