2014-06-16 62 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的内容。实际上,您只能看到光标中最后一行的值。