游标正在循环但只重复第一个值

时间:2015-05-21 13:50:59

标签: android listview while-loop cursor

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

public class Foo{
  private static interface A{ 
    void aStuff();
  }

  private static class B{ 
    public void doBStuff(){ 
        System.out.println("B stuff");
    } 
  }

  private static class AB extends B implements A{
    public void aStuff(){
        System.out.println("A stuff");
    }
  }

  public static void main(String[] args) {
    Foo foo = new Foo();
    foo.example(new AB());
  }

  // method "example" already given
}

当我拨打所有数据时(我只需要前三个记录)

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();   
        }}

我在列表视图中,当我检查时,它始终显示第一个数据。

这是我用作代码参考的一个例子(除了我使用数组来放置数据之外,它几乎相同) http://geekswithblogs.net/bosuch/archive/2011/01/31/android---create-a-custom-multi-line-listview-bound-to-an.aspx

我做错了,这就是为什么它只获得第一条数据?

1 个答案:

答案 0 :(得分:1)

做这样的事情会不容易(如果你不需要超过3个结果):

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();
}

我认为光标可能无法在while - 循环中正确迭代您的结果,这就是为什么您成为同一个结果的三个项目