qt引用java代码 qt+java( 二 )


#include "SDActivityDelegateSingleton.h"
#if defined(Q_OS_ANDROID)!defined(Q_OS_ANDROID_NO_SDK)
#include QtAndroid
void SDActivityDelegateSingleton::call( const QString methodName )
{
const QAndroidJniObject activity = QtAndroid::androidActivity( );
qDebug( "method name is: %s", qPrintable( methodName ) );
activity.callMethodvoid( qPrintable( methodName ) );
}
#else
void SDActivityDelegateSingleton::call( const QString methodName )
{
qDebug( "the desktop does not implement calling method: %s",
qPrintable( methodName ) );
}
#endif
然后在是SuperDoctorActivity.java:
// SuperDoctorActivity.java 这个Java文件重写了Android的Activity
package com.jcystudio.superdoctor;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.FrameLayout;
import android.view.Gravity;
import org.qtproject.qt5.android.bindings.QtActivity;
……
public class SuperDoctorActivity extends QtActivity
{
@Override
public void onCreate( Bundle savedInstanceState )
{
super.onCreate(savedInstanceState);
……
SmartBannerManager.init(this);
}
……
public void showSmartAD( )
{
SmartBannerManager.show( this );
}
}
这样,通过QML就可以调用Java代码了,调用方法是:
……
function prepare( )
{
SDActivity.call( "showSmartAD" );// ←调用Java方法
this.focus = true;// 获得按键焦点,可以使用按键控制
Controller.clearBlocks( );
Controller.setupGame( mode, difficulty, map, actions, colors );
headerSprite.currentFrame = 2;// 小人指向平常的位置
readyMask.visible = true;
backgroundMusic.play( );
}
怎么用qt调用java?我做过QT写界面,再嵌入C语言程序完成通信部分,因为C++编译器兼容C语言,所以可行 。
extern "c"
{
/*C代码*/
}
但应该不可能嵌入
extern “java”
{
}
编译通不过的 。
【qt引用java代码 qt+java】关于qt引用java代码和qt+java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读