我有两个课程,如下所示:
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。我该如何解决这个问题?
答案 0 :(得分:0)
如果要使用它,则必须创建MYMapActivity
的对象。静态字段也需要初始化。
public static MYMapActivity ma = new MYMapActivity();
或使所有方法都是静态的。如果你不需要课堂上的对象。然后你可以拨打MYMapActivity.displacGoogleMaps()
。
答案 1 :(得分:0)
你不能使用“ma = this;”作为该活动之外的静态变量因为“this”实例将被销毁,这就是你得到NullPointerException的原因。
要使用displayGoogleMaps(),您必须向方法添加静态标识符并通过您的类调用它:“MYMapActivity.displacGoogleMaps();”