2011-10-10 59 views
0

調用實例方法在預定義的I類有兩個類,如下圖所示:如何從另一個類中的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。我已經調試了代碼,然後最終我發現,代替馬我得到空。我該如何解決這個問題?

回答

0

如果您想使用它,您必須創建一個MYMapActivity的對象。靜態字段也需要初始化。

public static MYMapActivity ma = new MYMapActivity(); 

或使所有方法都是靜態的。如果你不需要課堂上的對象。然後你可以撥打MYMapActivity.displacGoogleMaps()

0

您不能使用「ma = this;」作爲該活動之外的一個靜態變量,因爲「this」實例將被銷燬,這就是爲什麼你會得到NullPointerException。

爲了使用displayGoogleMaps(),您必須爲該方法添加一個靜態標識符並通過您的類調用它:「MYMapActivity.displacGoogleMaps();」