开发者

StringBuilder related issue

开发者 https://www.devze.com 2023-02-14 19:54 出处:网络
i have following code in which, i am fetching the data from the 开发者_StackOverflowsqlite database. I am able to get all the values well whenever the data is upgraded but cant able to upgrade the val

i have following code in which, i am fetching the data from the 开发者_StackOverflowsqlite database. I am able to get all the values well whenever the data is upgraded but cant able to upgrade the values stored into a StringBuilder.So whenever the data is upgraded StringBuilder show the first data of the data base.

 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);

}


You should create a new StringBuilder for each iteration, or reset it using:

stBuilder.setLength(0).

Also, instead of using string concatenation (+) inside of StringBuilder.append(), you should probably have a series of appends:

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

Also note that you can safely forgo the use of StringBuilder altogether as the compiler optimizes string concatenation using StringBuilder anyway. Here is a performance study I found.


You need to reset the StringBuilder with a call to setLength(0);

while(cursor.moveToNext())
{
    stBuilder.setLength(0);
    .....
}
0

精彩评论

暂无评论...
验证码 换一张
取 消