将 jstring 转换为 QString
Convert jstring to QString
我正在调用一个返回字符串的Java函数:
QAndroidJniObject obj = QAndroidJniObject::callStaticObjectMethod<jstring>("HelloJava", "getString");
jstring jstr = obj.object<jstring>();
QString str = jstr; // This doesn't work, obviously, compiler-error.
它返回一个jstring
,这对我来说不是很有用。如何将其转换为QString
,以便我可以在我的代码中使用它?
你需要使用这个方法。
QString QAndroidJniObject::toString() const
返回一个 QString,其中包含 java 对象的字符串表示形式。在 Java 字符串对象上调用此函数是获取实际字符串数据的便捷方法。
所以,如果我是你,我会写这个:
QAndroidJniObject string = QAndroidJniObject::callStaticObjectMethod<jstring>("HelloJava", "getString");
QString qstring = string.toString();
要将jstring
转换为QString
,您可以使用以下行:
static void onContactSelected(JNIEnv * env, jobject /*obj*/, jstring number)
{
QString qstr(env->GetStringUTFChars(number, 0));
/* .... some codes .... */
}
或简单来说:
JNIEnv* env;
QString qstr(env->GetStringUTFChars(number, 0));
源
相关文章:
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- 如何将包含指数的 QString 转换为C++中的双倍?
- 删除unicode def后,无法将QString转换为TCHAR
- 在Qt中将QString转换为ASCII值,反之亦然
- 如何在Windows上将Qt QString转换为LPCTSTR
- 将 QString 转换为 QJsonArray
- QByteArray 和 QString 转换的问题
- q致命参数:将 QString 转换为常量字符* 会导致警告"format string is not a string literal"
- 将QString转换为uintptr_t,qt / c
- 无法将 QString 转换为 Const Char*
- 处理字符到QString转换中的ASCII字符
- 将QString转换为QString的指针
- 使用 QList 将 Qstring 转换为双倍
- 将 QString 转换为 uint16*
- 将 QString 转换为无符号短整型
- 将十六进制 QString 转换为 UTF-8 QString
- 如何在 Visual Studio 2013 中将 Qt5 中的 QString 转换为 LPCSTR
- QString::compare() vs 将 QString 转换为数字然后进行比较
- 正在将QString转换为std::string
- 如何将QString转换为特定格式的QDate