操作 QAndroidJniObject 数组

Posted

技术标签:

【中文标题】操作 QAndroidJniObject 数组【英文标题】:Manipulating QAndroidJniObject array 【发布时间】:2017-09-24 02:07:41 【问题描述】:

当我从 MyActivity 中的 java 方法返回一个字符串时,我可以用

打印它
QandroidJniObject asdf = QtAndroid::androidActivity().callObjectMethod("getPath", "(I)Ljava/lang/String;", 10)

qInfo() << asdf.toString();

但是如果我想返回一个数组呢?如何用C++操作,如何打印出来?

public class MyActivity extends QtActivity


    private String [] imagePaths = new String[100];

    @Override
    public void onCreate(Bundle savedInstanceState) 

        super.onCreate(savedInstanceState);

       //some code
    

    public String [] getPath (int index) 

        /*some code*/
        return imagePaths;
    

【问题讨论】:

【参考方案1】:

为了你的任务更好地使用

jobjectArray asdf = QtAndroid::androidActivity()
        .callMethod<jobjectArray>("getPath", "(I)Ljava/lang/String;", 10);

相反

QAndroidJniObject asdf = QtAndroid::androidActivity()
        .callObjectMethod("getPath", "(I)Ljava/lang/String;", 10)

【讨论】:

以上是关于操作 QAndroidJniObject 数组的主要内容,如果未能解决你的问题,请参考以下文章

Qt 和 Android Gallery - 使用 QAndroidJniObject 的 MediaStore

无法使用 QAndroidJniObject 调用 PowerManager.WakeLock.newWakeLock

如何使用 QAndroidJniObject 从 Qt 内部调用 Java 代码?

如何使用 QAndroidJniObject 从 Java 调用 Intent

iOS 数组操作

ios可变数组的所有操作