以下是代码段
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调用该方法。
答案 0 :(得分:0)
考虑将该方法设为静态方法。 虽然我不确定你是否被允许实例化这样的Activity,你还记得将它们都添加到Android清单吗?
getApplicationContext()
可能正在返回null
。
答案 1 :(得分:0)
testMethod
需要返回类型(例如void):
public void testMethod(){
//your code
}
答案 2 :(得分:0)
获得解决方案,在第二个选项卡的“onResume()”中编写代码,因此无需调用方法。