Ich versuche, die Methode getFailureDialog()
des Interface OnSelectedListener
aufzurufen. Die Methode ist in MainActivity.java
implementiert. Aber wenn ich die Methode aufrufe, bekomme ich die Nullzeiger-Ausnahme.
Ich weiß, dass es daran liegt, dass OnSelectedListener
noch nicht initialisiert ist und du getFailureDialog()
auf ein nicht initialisiertes Objekt aufrufst. Offensichtlich werden Interface-Methoden nie initialisiert. Aber wie rufe ich dann die Methode getFailureDialog()
von meiner Klasse Common.java
aus auf?
Ich platziere unten nur den relevanten Quellcode-
Quellcode:
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");
}
}
Fehlerprotokoll
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)