Обновить курсор после изменения в запросе - onStart ()? - PullRequest
0 голосов
/ 02 ноября 2011

В onCreate () я определяю курсор и перемещаюсь вниз в результатах с помощью кнопки:

        final Cursor cursor = (Cursor) WoordData.fetchset(USERCHOICE);

               btnVolgende.setOnClickListener(new View.OnClickListener() {
               public void onClick(View v) {   

              tv.setText(cursor.getString(0)); 

                  cursor.moveToNext();
                  if (cursor.isAfterLast()){                
                      cursor.moveToFirst();            
        }}});

В отдельном действии (через Настройки) я разрешаю пользователю изменять значение USERCHOICE.

Вопрос: Как повторно загрузить курсор новым запросом (новым значением USERCHOICE), когда пользователь возвращается к основному действию?

Thnx!

1 Ответ

0 голосов
/ 03 ноября 2011

Благодаря Кристиану, я решил это. Я не уверен, что это самое чистое решение, хотя ..

Я создал логическое значение с именем resetneeded.

В коде кнопки нажатия я делаю:

btnVolgende.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {<br> if (resetneeded) { cursor = (Cursor) WoordData.fetchset(kernset);<br> resetneeded = false; } startManagingCursor(cursor); tvFlitswoord.setText(cursor.getString(0)); cursor.moveToNext(); if (cursor.isAfterLast()){<br> cursor.moveToFirst(); }}<br> }

А затем в onStart () я установил для логического значения resetneeded значение true.

// РЕДАКТИРОВАТЬ - 2-е решение

В конце концов, я решил использовать ArrayList для передачи слов в TextView (и циклически проходить по нему с помощью кнопки). ArrayList кажется более простым в обращении и менее хрупким ..

код:

    public void onStart(){
    super.onStart();    
    getPrefs();
    wordlistarray.clear();
    cursor = (Cursor) WoordData.fetchset(kernset);       
    cursor.moveToFirst();
    while(!cursor.isAfterLast()) {

        String wordtoadd = cursor.getString(0);
        wordlistarray.add(wordtoadd);
        cursor.moveToNext();
    }       

            for(int i = 0; i < wordlistarray.size();
                    i++){ Log.d("word in array", "" + wordlistarray.get(i)); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...