Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Convert Android Java String[] array to C++ vector<string>
Forum Updated to NodeBB v4.3 + New Features

Convert Android Java String[] array to C++ vector<string>

Scheduled Pinned Locked Moved Solved Mobile and Embedded
2 Posts 2 Posters 498 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kyeiv
    wrote on 29 Oct 2020, 08:18 last edited by Kyeiv
    #1

    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>?

    K 1 Reply Last reply 29 Oct 2020, 13:38
    0
    • K Kyeiv
      29 Oct 2020, 08:18

      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>?

      K Offline
      K Offline
      KroMignon
      wrote on 29 Oct 2020, 13:38 last edited by
      #2

      @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();
          }
      }
      

      It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

      1 Reply Last reply
      1

      1/2

      29 Oct 2020, 08:18

      • Login

      • Login or register to search.
      1 out of 2
      • First post
        1/2
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved