interface - 用于原生 Android 代码的 libGDX 接口(interface)

标签 interface libgdx

我想在界面的帮助下在我的项目中使用 native Android 代码。

Android启动器:

public int getNetworkState() {
    int a;

    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if (mWifi.isConnected()) {
        a=1;
    } else {
        a=0;
    }

    return a;
}

核心:

public interface NetworkState {
    public int getNetworkState();

}

如何获取核心项目中的精确整数值?

最佳答案

通过执行以下操作可以解决此问题:

将您的平台特定代码放入实现您的接口(interface)的类中,并让您的 Game 类接受该接口(interface)作为其构造函数中的参数。

因此,在您的核心项目中,您有 Game 类;

public class GameInstance extends Game {
    private NetworkState networkState;

    public GameInstance(NetworkState networkState) {
        this.networkState = networkState;
    }

    // override methods go below
    ...
}

此外,您将 NetworkState 接口(interface)放入核心中:

public interface NetworkState {
    public int getNetworkState();    
}

在您的Android项目中放置实现;

public AndroidNetworkState implements NetworkState {
    public int getNetworkState() {
        return 1;
    }
}

然后在 AndroidLauncher 中创建一个 Game 对象并向其传递接口(interface)实现:

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    NetworkState networkState = new AndroidNetworkState(); // or whatever you called the class
    initialize(new Game(networkState), config);
}

然后你就可以在核心项目中调用接口(interface)方法了:

...
int networkStateResult = this.networkState.getNetworkState();
...

如果您支持其他平台,请务必提供其他平台的实现。

关于interface - 用于原生 Android 代码的 libGDX 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802219/

相关文章:

java - 如何在运行桌面时登录LibGdx :run?

java - 使用 Eclipse 设置 LibGDX 时出现 Gradle 错误

Typescript为具有动态和静态键的对象创建接口(interface)

c# - .NET 工具 : Extract Interface and Implement Wrapper Class

java - 标准 - 通过 getter 选择

opengl - LibGDX 移动旋转相机

java - LibGDX多点触控实现,游戏开发

android - recyclerview header,从Activity/Fragment中的header访问对象

java - 通用接口(interface)或通用子类

java - 在没有 Gradle 的 RoboVM 上设置 LibGDX(仅出现黑屏)