Interface 本机android代码的libGDX接口

Interface 本机android代码的libGDX接口,interface,libgdx,Interface,Libgdx,我想在我的项目中使用原生android代码,并提供一个界面 安德鲁伊德拉舍尔: public int getNetworkState() { int a; ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWifi = connManager.getNetworkInfo(Connecti

我想在我的项目中使用原生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 class GameInstance extends Game {
    private NetworkState networkState;

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

    // override methods go below
    ...
}
此外,您还将NetworkState接口置于核心:

public interface NetworkState {
    public int getNetworkState();    
}
在你的Android项目中你把实现放进去

public AndroidNetworkState implements NetworkState {
    public int getNetworkState() {
        return 1;
    }
}
然后在AndroidLauncher中创建一个游戏对象,并将接口实现传递给它:

@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);
}
然后您可以在核心项目中调用接口方法:

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

如果您支持其他平台,请确保为其他平台提供实现。

core中的我的类将是主菜单。MainMenu.NetworkState NetworkState=新建MainMenu.NetworkState();它说它是抽象的,不能实例化。为什么它是一个抽象类?它是什么意思?这是“正常的”。。。。它还说.networkState无法解析。你能在帖子中包含你的networkState类吗?我已经扩展了我的答案,如果它仍然给出错误,你需要比“很多错误消息”更具描述性
...
int networkStateResult = this.networkState.getNetworkState();
...