我创建了一个循环,它将从我的光标中获取数据,但是我注意到即使它是循环(具有正确的计数),它也只显示第一个值。
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
我做错了,这就是为什么它只获得第一条数据?
答案 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
- 循环中正确迭代您的结果,这就是为什么您成为同一个结果的三个项目