【问题标题】:Android Cursor - Concatenate/Append a StringAndroid 光标 - 连接/附加字符串
【发布时间】:2017-10-18 01:27:48
【问题描述】:

我想附加/连接一个字符串,以便我可以使用该字符串打印到蓝牙打印机。

//游标数据来自sqlite数据库

//这是我的代码sn-p

Cursor cursor = db.db_getAll();
if(cursor.moveToFirst()) {
    String message = "Hello";
    do {
        String name = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_NAME));
        message += " Name: "+name+" \n";
    } while(cursor.moveToNext());
    message += "Thank You! \n";
}

之后,我会将这条消息打印到蓝牙打印机中。打印成功但只打印...

Hello
Thank You!

PS:游标可以正常工作,因为我也使用它从 sqlite 数据库中保存到 mysql 数据库中。

我正在考虑使用 StringBuilder。请帮忙? :D

【问题讨论】:

  • 我认为 cursor.moveToNext() 是错误的。这就是为什么返回的消息是这样的。请先检查 cursor.moveToNext()。
  • 就像我说的,循环是好的。我正在使用同样的循环将数据保存到 mysql,它工作正常。
  • @Maki 尝试在循环中添加日志。如果您的日志有输出,则循环运行良好,如果没有,则问题出在循环内部。例如。 Log.i("Message", "Name: " + name);

标签: android mysql bluetooth android-sqlite


【解决方案1】:

在do-while循环之前,使用cursor. moveToFirst()

如果您想使用StringBuilder,请使用StringBuilder 对象代替message 变量,即String 对象,并使用builder.append(str) 代替+=

StringBuilder builder = new StringBuilder();
builder.append("Hello");
Cursor cursor = db.db_getAll();
cursor.moveToFirst();
do {
    String name = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_NAME));
    builder.append(" Name: ").append(name).append("\n");

} while(cursor.moveToNext());
builder.append("Thank You! \n");
String message = builder.toString();

【讨论】:

  • 这就是我想要做的。你能给个代码sn-p吗?谢谢
  • 嗨,循环没问题,是的,我有 if(cursor.moveToFirst()) { do while statement}。
猜你喜欢
  • 2016-04-23
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多