设为首页 加入收藏

TOP

Android中C++调用Java实现
2014-11-24 07:46:12 来源: 作者: 【 】 浏览:1
Tags:Android 调用 Java 实现

1:需求分析


newAlertDialog.Builder(m_scMnCtx)

.setTitle(title)

.setMessage(val)

.setPositiveButton("确定",

new DialogInterface.OnClickListener(){

publicvoidonClick(DialogInterface dialoginterface,int i){

}}).show();

return 0;

}

其中参数title为标题,val为消息内容。

b: native方法

publicnativestaticint testCallBack(Stringtitle,String val)

3:JNI层接口

/*

* Class: org_yao_ndk_NDKTest

* Method: testCallBack

* Signature: (Ljava/lang/String;Ljava/lang/String;)I

*/

JNIEXPORT jint JNICALLJava_org_yao_ndk_NDKTest_testCallBack

(JNIEnv *env, jclass obj, jstringtitle, jstring val)

{

jmethodID java_method =env->GetStaticMethodID(obj, "showMessage","(Ljava/lang/String;Ljava/lang/String;)I");

if(java_method == 0)

{

return 0;

}

env->CallStaticIntMethod(obj,java_method,title,val);

return 1;

}

其中,GetStaticMethodID获取java中静态方法的ID,obj为方法所在的类,showMessage为Java层接口名,"(Ljava/lang/String;Ljava/lang/String;)I"其中括号里面对应native方法testCallBack输入参数,外面为返回参数,可以参考/*Signature*/注释信息。在获取到方法ID以后就可以用CallStaticIntMethod来调用Java层接口showMessage了。其中CallStaticIntMethod中Int要和publicnative static int testCallBack(String title,String val)中int一致。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JQuery 获取json数据[$.getJSON方.. 下一篇Ubuntu下OpenGL编程基础解析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)