2011-11-02 43 views
0

在的onCreate(),I定義遊標並在使用按鈕的結果向下移動:查詢中更改光標後 - onStart()?

 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!

回答

0

感謝Christian,我解決了它。我不確定這是否是最乾淨的解決方案,雖然..

我創建了一個名爲resetneeded的布爾值。

在clickbutton代碼我做的:

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

然後,在調用onStart(),我設置布爾resetneeded爲true。

//編輯 - 第二解

最後,我決定使用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)); }