如何从android中的另一个类调用预定义类中的实例方法

时间:2011-10-10 19:39:31

标签: java 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。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果要使用它,则必须创建MYMapActivity的对象。静态字段也需要初始化。

public static MYMapActivity ma = new MYMapActivity();

或使所有方法都是静态的。如果你不需要课堂上的对象。然后你可以拨打MYMapActivity.displacGoogleMaps()

答案 1 :(得分:0)

你不能使用“ma = this;”作为该活动之外的静态变量因为“this”实例将被销毁,这就是你得到NullPointerException的原因。

要使用displayGoogleMaps(),您必须向方法添加静态标识符并通过您的类调用它:“MYMapActivity.displacGoogleMaps();”