Android StringBuilder相关问题

Android StringBuilder相关问题,android,Android,我有以下代码,其中我从sqlite数据库获取数据。无论何时升级数据,我都能很好地获取所有值,但无法升级存储到StringBuilder中的值。因此,无论何时升级数据,StringBuilder都会显示数据库的第一个数据 private void showData(Cursor cursor) { StringBuilder stbuilder = new StringBuilder(); while(cursor.moveToNext()) { start_

我有以下代码,其中我从sqlite数据库获取数据。无论何时升级数据,我都能很好地获取所有值,但无法升级存储到StringBuilder中的值。因此,无论何时升级数据,StringBuilder都会显示数据库的第一个数据

 private void showData(Cursor cursor) {

StringBuilder stbuilder = new StringBuilder();
    while(cursor.moveToNext())
    {
         start_time = cursor.getString(1);
         end_time = cursor.getString(2);
         duration_time = cursor.getString(3);
         phone_option = cursor.getString(4);
         phone_mode = cursor.getString(5);
         stbuilder.append(start_time+" "+end_time+" "+duration_time+" "+phone_option+" "+phone_mode);
        Log.i("STARTtttDB", ""+start_time);
    Log.i("enddddDB", ""+end_time);
    Log.i("duratonnn", ""+duration_time);
    Log.i("OpTIONnnnn",""+phone_option);
    Log.i("M O D E ",""+phone_mode);
    String data=stbuilder.toString();
    Log.i("Data OUtput",data);

}

您需要通过调用setLength(0)重置StringBuilder


您应该为每个迭代创建一个新的StringBuilder,或者使用以下方法重置它:

stBuilder.setLength(0)

另外,与在StringBuilder.append()中使用字符串连接(
+
)不同,您可能应该有一系列的附录:

stBuilder.append(start_time);
stBuilder.append(" ");
stBuilder.append(end_time);
...

还请注意,您可以安全地放弃使用StringBuilder,因为编译器无论如何都会使用StringBuilder优化字符串连接。这是我找到的一个。你是说“更新”而不是“升级”吗?否则这个问题对我来说没有意义。谢谢你的回答,但我还有另一个问题。希望你也有答案。
stBuilder.append(start_time);
stBuilder.append(" ");
stBuilder.append(end_time);
...