Interface 本机android代码的libGDX接口
我想在我的项目中使用原生android代码,并提供一个界面 安德鲁伊德拉舍尔: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
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();
...