[英]How to call instance method in predefined class from another class in android
我有两个类,如下所示:
TestActivity.java
public class TextActivity extends Activity {
public void onCreate(Bundle savedinsstate) {
super.onCreate(savedinsstate);
Intent intent=new Intent(this,MYMapActivity.class);
startActivity(intent);
MYMapActivity.ma.displayGoogleMaps();
}
}
MYMapActivity.java
public class MYMapActivity extends MapActivity {
public static MYMapActivity ma;
public void onCreate(Bundle savedinsstate) {
super.onCreate(savedinsstate);
ma=this;
}
public void displayGoogleMaps(){
//some code here.
}
}
从上面的内容中,当我调用MYMapActivity.ma.displayGoogleMaps()时,我得到了NullPointerException。 我已经调试了代码,然后最终我发现代替ma我得到的是null。 我该如何解决?
您不能使用“ ma = this;” 作为该活动之外的静态变量,因为“ this”实例将被销毁,这就是为什么您得到NullPointerException的原因。
为了使用displayGoogleMaps(),您必须向该方法添加静态标识符,并通过您的类进行调用:“ MYMapActivity.displacGoogleMaps();”
如果要使用MYMapActivity
对象,则必须创建它。 静态字段也需要初始化。
public static MYMapActivity ma = new MYMapActivity();
或将所有方法设为静态。 如果您不需要类中的对象。 然后,您可以调用MYMapActivity.displacGoogleMaps()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.