2015-05-21 3 views
1

Я создал цикл, который будет получать данные из моего курсора, однако я заметил, что даже если он циклически (с правильным подсчетом), он показывает только первое значение.Курсор зацикливается, но повторяет только первое значение

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

Я помещаю внутри ListView, когда я проверяю, всегда показывая первые данные.

Это пример, который я использовал в качестве ссылки на мой код (Это почти то же самое, за исключением того, я использовал массив, чтобы положить мои данные) http://geekswithblogs.net/bosuch/archive/2011/01/31/android---create-a-custom-multi-line-listview-bound-to-an.aspx

Я делаю что-то неправильно, который является, почему это только получение первой части данных?

ответ

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 -loop, и именно поэтому вы становитесь одним и тем же результатом для трех элементов.

+0

Будет ли это работать, если я делаю это внутри асинхронной задачи? простите, я забыл упомянуть об этом в моем вопросе? – marchemike

+0

Я думаю, что это будет, но я не пытаюсь это сделать в асинхронной задаче, но, похоже, нет причин для проблем в асинхронной задаче –

Смежные вопросы