Convert Android Java String[] array to C++ vector<string>
-
wrote on 29 Oct 2020, 08:18 last edited by Kyeiv
I have a snippet like this:
//Java static String[] stringArray(String s1, String s2) { ... }
//C++ QAndroidJniObject stringArray = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/TestClass", "stringArray" "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" string1.object<jstring>(), string2.object<jstring>());
Having stringArray how to convert it to vector<string>?
-
I have a snippet like this:
//Java static String[] stringArray(String s1, String s2) { ... }
//C++ QAndroidJniObject stringArray = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/TestClass", "stringArray" "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" string1.object<jstring>(), string2.object<jstring>());
Having stringArray how to convert it to vector<string>?
wrote on 29 Oct 2020, 13:38 last edited by@Kyeiv said in Convert Android Java String[] array to C++ vector<string>:
Having stringArray how to convert it to vector<string>?
You can do it like this:
QAndroidJniEnvironment jniEnv; QStringList stringList; if(stringArray.isValid()) { const jobjectArray stringListObjArray = stringArray.object<jobjectArray>(); const int arraySize= jniEnv->GetArrayLength(stringListObjArray ); for(int idx = 0; idx < arraySize; ++idx) { const QAndroidJniObject stringObj = QAndroidJniObject::fromLocalRef(jniEnv->GetObjectArrayElement(stringListObjArray , idx)); stringList << stringObj .toString(); } }
2/2