我想访问jMonkey app中通过android intents传递的变量。我可以使用MainActivity中的典型intent变量读取代码来访问这些变量
@Override
public void onCreate(Bundle savedInstanceState) {
//super.onCreate(savedInstanceState);
Bundle parameters = getIntent().getExtras();
System.out.println("hurr");
if (parameters != null) {
String name = parameters.getString("myextra");
System.out.println(name);
//Integer age = parameters.getInt("age");
}
}
但是我想在jMonkey AppStates中访问这些变量,但我不知道如何将包含这些变量的对象的引用传递给jMonkey系统。我无法从MainActivity访问AppStateManager,也无法使用JmeSystem对象从AppState访问JmeAndroidSystem引用。
是否有一种很好的沟通方式,而不是破解AndroidHarness和JmeSystem代码,以使JmeAndroidSystem可见。
答案 0 :(得分:0)
JMonkey也在MainActivity中提供app变量实例。
您可以使用定义新的AppState在OnCreate()方法中存储Intent的上下文,该方法可以由app.getStateManager.getState(XYZ.class)
访问。
String url = getIntent().getStringExtra("url");
String uname = getIntent().getStringExtra("username");
String pass = getIntent().getStringExtra("password");
String amcatID = getIntent().getStringExtra("amcatID");
String moduleID = getIntent().getStringExtra("moduleID");
if (url!=null && uname!=null && pass!=null && amcatID!=null && moduleID!=null) {
System.out.println("hurrhurr");
System.out.println(url);
System.out.println(uname);
System.out.println(pass);
System.out.println(amcatID);
System.out.println(moduleID);
app.getStateManager().attach(new SOAPCommunication(url,uname,pass,amcatID,moduleID));
}