从另一个活动中调用另一个活动的方法

时间:2011-08-04 17:37:58

标签: java android

以下是代码段

class1.java

public class1 extends ListActivity {


   public class1(){}

   public testMethod()
   {
         Toast.makeText(getApplicationContext(),"Inside Method",Toast.LENGTH_SHORT).show();
   }

}

class2.java

public class2 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

          class1 c = new class1();
          c.testMethod();

    }

}

我想从class2调用“testMethod”,目前它给出了以下错误,

08-04 22:59:27.428: ERROR/AndroidRuntime(1224): FATAL EXCEPTION: main
08-04 22:59:27.428: ERROR/AndroidRuntime(1224): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assistant/com.assistant.AssistantActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assistant/com.assistant.addNew}: java.lang.NullPointerException

感谢。

我有两个标签,

Tab1扩展了Activity(class2.java)=>包含在DB中添加条目的表单

Tab2扩展了ListActivity(class1.java)=>包含添加条目的列表

我想在通过Tab1添加任何条目时刷新Tab2,并且我在class2.java中添加了方法以使用更新的DB条目填充列表。

现在,我想在添加条目后从class1.java调用该方法。

3 个答案:

答案 0 :(得分:0)

考虑将该方法设为静态方法。 虽然我不确定你是否被允许实例化这样的Activity,你还记得将它们都添加到Android清单吗?

getApplicationContext()可能正在返回null

答案 1 :(得分:0)

testMethod需要返回类型(例如void):

public void testMethod(){
   //your code
}

答案 2 :(得分:0)

获得解决方案,在第二个选项卡的“onResume()”中编写代码,因此无需调用方法。