簡體   English   中英

如何從Android中的另一個類調用預定義類中的實例方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM