android - 将 jstring 转换为 QString

标签 android c++ qt qstring qtandroidextras

我正在调用一个返回字符串的 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,以便在我的代码中使用它?

最佳答案

您需要使用 this method .

QString QAndroidJniObject::toString() const

Returns a QString with a string representation of the java object. Calling this function on a Java String object is a convenient way of getting the actual string data.

所以,如果我是你,我会这样写:

QAndroidJniObject string = QAndroidJniObject::callStaticObjectMethod<jstring>("HelloJava", "getString");

QString qstring = string.toString();

关于android - 将 jstring 转换为 QString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345570/

相关文章:

Android Spinner onItemSelected 未在 Fragment 内部调用

android - android中viewdidappear等价方法

android - Android 2D 游戏的 2D API 或 OpenGL ES?

c++ - 如何通过 g++ 链接 wsock32 库?

c++ - 多个运算符匹配这些操作数

c++ - 检测表单中任何小部件的状态是否已更改

android - 当应用程序处于后台时,在 Firebase 服务中编辑 SharedPreferences 后,值将会更改

c++ - 如何 "concatenate"boost::mpl::vectors

linux - 执行时出错-找不到所需的版本 `Qt_5'

c++ - Qt 5 禁用单击并按住