2014-06-16 99 views
0

日誌顯示所有的數據,但它只輸出textView中的最後一個值,關於爲什麼?光標只輸出最後一個值

if (c.moveToFirst()) { 

     //Log to test cursor data 
     Log.i("Cursor", DatabaseUtils.dumpCursorToString(c)); 


     do { 
      String cow = c.getString(c.getColumnIndex("cow")); 
      String score = c.getString(c.getColumnIndex("score")); 

      textViewOutputcow.setText(cow + "\n"); 
      textViewOutputscore.setText(score + "\n"); 
     } while (c.moveToNext()); 

    } 
    c.close(); 

回答

2

每次通過循環時,您都在設置文本內容,而不是添加到它。你可以使用一個StringBuffer像這樣做:

StringBuffer cowBuffer=new StringBuffer(); 
StringBuffer scoreBuffer=new StringBuffer(); 

do { 
    String cow = c.getString(c.getColumnIndex("cow")); 
    String score = c.getString(c.getColumnIndex("score")); 

    cowBuffer.append(cow + "\n"); 
    scoreBuffer.append(score + "\n"); 
    } 
while (c.moveToNext()); 


textViewOutputcow.setText(cowBuffer.toString()); 
textViewOutputscore.setText(scoreBuffer.toString()); 
+0

謝謝你,這麼明顯我現在 – BaSSa

+0

使用StringBuilder而不是StringBuffer的。 – Karakuri

0

這是因爲您在每次迭代後都不斷更新textview的內容。實際上,您只能看到光標中最後一行的值。