【发布时间】:2018-02-27 00:18:45
【问题描述】:
我正在寻找一个很好的例子,我如何从同一个包中的另一个类调用 MainAcitivity 中声明的方法。
我在 MainAcitivity 类中有一个 getSMS 方法,如下所示:
private void sendSMS(String phoneNumber, String message) {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
}
public void getSMS(){
sendSMS("5556", "You're at home.");
}
我正在 MainActivity 类的另一个类中调用 getSMS() 方法。
public void tSMS(){
MainActivity mainActivity = new MainActivity();
mainActivity.getSMS();
}
现在我正在使用条件语句调用其他类中的方法。
if (activity.getType() == 3) {
tSMS();
}
Logcat:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
【问题讨论】:
-
Activity 不应该手动实例化。如果您在要调用的 Activity 中有代码并且该 Activity 未打开,则它可能属于辅助类。
-
如果此方法与您的应用程序的 UI 无关。为什么不将它放在实用程序类中?
-
你的意思是,我可以从任何其他类调用但不能从 Activity 调用? stackoverflow.com/questions/10787159/…
标签: java android methods nullpointerexception