2013-08-20 3 views
0

Пожалуйста, посмотрите на следующий кодПолучение данных из определенного количества строк

public List getWordList(int listNumber) { 
     // TODO Auto-generated method stub 

     List<String> list_a = new ArrayList<String>(); 
     List<String> wordList = new ArrayList<String>(); 
     int counter = 0; 

     try 
     { 
      String selectQuery = "select * from WordList"; 

      Cursor cursor = database.rawQuery(selectQuery, null); 


      if(cursor.moveToFirst()) 
      { 
       do 
       { 
        String englishWord = cursor.getString(cursor.getColumnIndex("EnglishWord")); 
        String portugueseWord = cursor.getString(cursor.getColumnIndex("PortugueseWord")); 
        String englishHint = cursor.getString(cursor.getColumnIndex("EnglishHint")); 
        String portuguestHint = cursor.getString(cursor.getColumnIndex("PortugueseHint")); 

        list_a.add(englishWord); 
        list_a.add(portugueseWord); 
        list_a.add(englishHint); 
        list_a.add(portuguestHint); 
       } 
       while(cursor.moveToNext()); 

       //Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show(); 
      } 


      cursor.close(); 
      return list_a; 
     } 
     catch(Exception e) 
     { 
      Toast.makeText(context, "Exception: "+e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); 
      return null; 
     } 


    } 

Здесь я получаю данные из первой строки до последней строки. Но это не то, что мне нужно. Если «номер», параметр равен 1, мне нужны данные из строки 0-9, если «номер» равен 2, мне нужны данные из строки 10-19, если «номер» равен 3, мне нужны данные из строки 20 -29 как мудрый.

Я не знаком с SQLite, так как я могу это сделать?

Пожалуйста, помогите.

ответ

1

Пейджинг как функциональность работает лучше всего с SQL Limit Clause. См. Документацию Sqlite here.

Старый запрос:

String selectQuery = "select * from WordList"; 

Новый запрос:

String selectQuery = "select * from WordList LIMIT 0,10"; 

Первая цифра указывает на смещение. Смещение можно исправить, используя что-то вроде

int offset = (somePageValue-1)*10; 
+0

Привет, спасибо большое за ответ. Вы имеете в виду «0,9» вместо «0,10»? –

+0

Nope 0 означает смещение 0, а затем 10 элементов, что приводит к 0-9 – fyr

+0

ahh, справа, я получил его. Я попробую и дам вам знать –

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