libGDX 本机 android 代码的接口
libGDX interfaces for native android code
我想借助接口在我的项目中使用本机 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();
}
如何在核心项目中获取准确的整数值?
这可以通过执行以下操作解决:
将您的平台特定代码放在实现您的界面的 class 中,并让您的游戏 class 在其构造函数中接受该界面作为参数。
所以在您的 核心项目 中,您有自己的游戏 class;
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 中创建一个 Game 对象并将接口实现传递给它:
@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();
...
如果您支持其他平台,请务必提供其他平台的实现。
我想借助接口在我的项目中使用本机 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();
}
如何在核心项目中获取准确的整数值?
这可以通过执行以下操作解决:
将您的平台特定代码放在实现您的界面的 class 中,并让您的游戏 class 在其构造函数中接受该界面作为参数。
所以在您的 核心项目 中,您有自己的游戏 class;
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 中创建一个 Game 对象并将接口实现传递给它:
@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();
...
如果您支持其他平台,请务必提供其他平台的实现。