1, for Java End Class and interface definition, please refer to:
Android NDK Practical Learning-get Java-side classes and their class variables
2. Assign values to the passed parameters:
- Assigning values to bool type members
Env->setbooleanfield (Jobj, Jfbdata, false);
- Assign a value to a double type member
Env->setdoublefield (Jobj, Jfddata, 209.22);
- assigning values to an int type member
Env->setintfield (Jobj, Jfidata, 3653);
- Assigning a member of type byte to a value
Env->setbytefield (Jobj, Jfcdata, );
- To assign a value to a string type
Char data[] = "4611354"; Env->setobjectfield (jobj, Jfsdata, Env->newstringutf (data));
- Assigning values to a primitive type array type
1 //get int array assignment in Java2Jintarray Jint_arr = (jintarray) env->Getobjectfield (Jobj, Jiarr);3 intarrint[Ten] = {0};4 for(inti =0; I <Ten; ++i) {5Arrint[i] = -+i;6 }7Env->setintarrayregion (Jint_arr,0,Ten, arrint);8 9 //get a byte array assignment in JavaTenJfieldid Jbytearr = Env->getfieldid (Jcsetdatamgr,"Bytearr","[B"); One Chararrbyte[Ten] ="20200825"; AJbytearray Jbyte_arr = (jbytearray) env->Getobjectfield (Jobj, Jbytearr); -Env->setbytearrayregion (Jbyte_arr,0,8, (ConstSignedChar*) arrbyte);
3, gets the value of the member variable:
- Gets the bool type member variable value
bool bdata = Env->getbooleanfield (Jcsetdatamgr, jfbdata);
- Gets the value of a double type member variable
double dData = Env->getdoublefield (Jcsetdatamgr, jfddata);
- get int type member variable value
int iData = Env->getintfield (Jcsetdatamgr, jfidata);
- Gets the byte type member variable value
char cData = Env->getbytefield (Jcsetdatamgr, jfcdata);
- Get string member Variable value
1Jfieldid jfsdata = Env->getfieldid (Jcsetdatamgr,"SData","ljava/lang/string;");2Jstring jteststr = (jstring) (env->Getobjectfield (Jcsetdatamgr, Jfsdata));3 Const Char* Teststr = env->Getstringutfchars (Jteststr, NULL);4 Chartestdata[ -] = {0};5 strcpy (TestData, teststr);6Env->releasestringutfchars (Jteststr, TESTSTR);
- Get the base type array member variable value
1Jfieldid Jiarr = Env->getfieldid (Jcsetdatamgr,"Intarr","[I");2 if(NULL = =Jiarr) {3Debug_out ("Jfbdata fail!");4 }5 6 //gets the object of the array property arrays in Java7Jintarray Jint_arr = (jintarray) env->Getobjectfield (Jobj, Jiarr);8 9 intarrint[Ten] = {0};Ten for(inti =0; I <Ten; ++i) { OneArrint[i] = -+i; A } -Env->getintarrayregion (Jint_arr,0,Ten, Arrint);
4, about the class contains the class can be followed by analogy, such as useful to, after the next perfect!
Android NDK Practical Learning-java End Object member assignment and get object member values