Android 游标正在循环,但仅重复第一个值

Android 游标正在循环,但仅重复第一个值,android,listview,while-loop,cursor,Android,Listview,While Loop,Cursor,我创建了一个循环,该循环将从光标获取数据,但是我注意到,即使它正在循环(使用正确的计数),它也只显示第一个值 int vv = 0; if ((CR3.moveToFirst()) || CR3.getCount() !=0){ while (CR3.isAfterLast() == false) { vendoName[vv] = CR3.getString(0); vendoEsch[vv] =

我创建了一个循环,该循环将从光标获取数据,但是我注意到,即使它正在循环(使用正确的计数),它也只显示第一个值

int vv = 0;
  if ((CR3.moveToFirst()) || CR3.getCount() !=0){


            while (CR3.isAfterLast() == false) {
                vendoName[vv] = CR3.getString(0);
                vendoEsch[vv] = CR3.getString(1);
                vendoAsch[vv] = CR3.getString(2);
                vendoTag[vv] = CR3.getString(3);                    
                vv++;
                CR3.moveToNext();   
        }}
当我调用所有数据时(我只需要前三条记录)

ArrayList results2=新建ArrayList();
SearchResults2 sr2=新的SearchResults2();
对于(int j=0;j<3;j++)
{
sr2.集合名(vendoName[j]);
sr2.setEsch(vendoEsch[j]);
sr2.setAsch(vendoAsch[j]);
sr2.setTag(vendoTag[j]);
结果2.添加(sr2);
}
我把它放在一个列表视图中,当我检查时,它总是显示第一个数据

这是我用来引用代码的一个例子(除了我使用了一个数组来放置数据外,几乎是一样的)


我是否做错了什么,这就是为什么它只获取第一条数据的原因?

这样做不容易吗(如果您不需要超过3个结果):

ArrayList results2=新建ArrayList();
CR3.moveToFirst();
对于(i=0;i<3;i++){
SearchResults2 sr2=新的SearchResults2();
sr2.setName(CR3.getString(0));
sr2.setEsch(CR3.getString(1));
sr2.setAsch(CR3.getString(2));
sr2.setTag(CR3.getString(3));
结果2.添加(sr2);
CR3.moveToNext();
}

我认为可能光标在
while
-循环中没有正确地遍历您的结果,这就是为什么对于三个项目,您会成为一个相同的结果的原因

如果我在异步任务中执行此操作,这会起作用吗?对不起,我忘了在我的问题中提到它了?我想会的,但我还没有在异步任务中尝试过,但在异步任务中似乎没有出现问题的原因
ArrayList<SearchResults2> results2 = new ArrayList<SearchResults2>();
SearchResults2 sr2 = new SearchResults2();
     for(int j = 0;j < 3;j++)
     {

     sr2.setName(vendoName[j]);
     sr2.setEsch(vendoEsch[j]);
     sr2.setAsch(vendoAsch[j]);
     sr2.setTag(vendoTag[j]);
     results2.add(sr2);
     }
ArrayList<SearchResults2> results2 = new ArrayList<SearchResults2>();
CR3.moveToFirst();
for (i = 0; i < 3; i++) {
    SearchResults2 sr2 = new SearchResults2();
    sr2.setName(CR3.getString(0));
    sr2.setEsch(CR3.getString(1));
    sr2.setAsch(CR3.getString(2));
    sr2.setTag(CR3.getString(3));
    results2.add(sr2);
    CR3.moveToNext();
}