null pointer exception on calling interface method implemented in other class
OnSelectedListener mCallback;
is never getting initialized, or is being initialized with a null value.
public class Common
{
OnSelectedListener mCallback = new OnSelectedListener(){
public void getFailureDialog(){
JOptionPane.showMessageDialog(null, "An Error Has Occurred.");
}
};
public interface OnSelectedListener
{
public void getFailureDialog();
}
public void myRecord(String email)
{
mCallback.getFailureDialog(); //now this works.
}
}
My God
Sr. Software Engineer (Information Technology) Technologies - Ruby ON Rails, Java/J2EE, Android Development. Certifications - Sun Certified Java Programmer (SCJP) Experience - 7 years Far better is it to dare mighty things, to win glorious triumphs, even though checkered by failure... than to rank with those poor spirits who neither enjoy nor suffer much, because they live in a gray twilight that knows not victory nor defeat.
Updated on June 05, 2022Comments
-
My God almost 2 years
I am trying to call the method
getFailureDialog()
of the interfaceOnSelectedListener
. The method is implemented inMainActivity.java
. But when I call the method, I am getting the null pointer exception.I know that its because
OnSelectedListener
is still not initialized and you are callinggetFailureDialog()
on uninitialized object. Obviously, interface methods are never initialized. But then how do I call the methodgetFailureDialog()
from my classCommon.java
?I am placing only the relevant source code below-
Source code:
SharedFragment.java
public class SharedFragment extends DialogFragment { Bundle bundle = getArguments(); final String email = bundle.getString("email"); Thread t=new Thread(new Runnable() { public void run() { common.myRecord(email); } }); t.start(); }
Common.java
public class Common { OnSelectedListener mCallback; public interface OnSelectedListener { public void getFailureDialog(); } public void myRecord(String email) { mCallback.getFailureDialog(); //null pointer exception here } }
MainActivity.java
public class MainActivity implements Common.OnSelectedListener { @Override public void getFailureDialog() { RecordFailure fd = new RecordFailure(); fd.show(getSupportFragmentManager(), "dialog"); } }
Error Log
03-22 15:50:39.032: W/dalvikvm(20796): threadid=16: thread exiting with uncaught exception (group=0x4204c450) 03-22 15:50:39.052: E/AndroidRuntime(20796): FATAL EXCEPTION: Thread-30126 03-22 15:50:39.052: E/AndroidRuntime(20796): java.lang.NullPointerException 03-22 15:50:39.052: E/AndroidRuntime(20796): at com.cornmail.util.Common.myRecord(Common.java:2062)