我试图调用接口的方法 getFailureDialog()
OnSelectedListener
。
该方法是在 MainActivity.java
实施。但是,当我调用该方法,我得到
空指针异常。
我知道它是因为 OnSelectedListener
仍然没有初始化,你调用 getFailureDialog()
未初始化的对象。显然,接口方式永远不会初始化。但后来我怎么调用该方法 getFailureDialog()
从我的课 Common.java
?
我只把相关的源$低于C $ C -
来源$ C $ C:
SharedFragment.java
公共类SharedFragment扩展DialogFragment
{
捆绑包= getArguments();
最后弦乐电子邮件= bundle.getString(电子邮件);
线程t =新主题(新的Runnable()
{
公共无效的run(){
common.myRecord(电子邮件);
}
}); t.start();
}
Common.java
公共类常见
{
OnSelectedListener mCallback;
公共接口OnSelectedListener
{
公共无效getFailureDialog();
}
公共无效myRecord(字符串电子邮件)
{
mCallback.getFailureDialog(); //空指针异常这里
}
}
MainActivity.java
公共类MainActivity实现Common.OnSelectedListener
{
@覆盖
公共无效getFailureDialog()
{
RecordFailure的fd =新RecordFailure();
fd.show(getSupportFragmentManager(),对话);
}
}
错误日志
03-22 15:50:39.032:W / dalvikvm(20796):主题ID = 16:线程退出与未捕获的异常(组= 0x4204c450)
03-22 15:50:39.052:E / AndroidRuntime(20796):致命异常:线程30126
03-22 15:50:39.052:E / AndroidRuntime(20796):显示java.lang.NullPointerException
03-22 15:50:39.052:E / AndroidRuntime(20796):在com.cornmail.util.Common.myRecord(Common.java:2062)
解决方案
OnSelectedListener mCallback;
永远不会得到初始化,或正在与空值进行初始化。
公共类常见
{
OnSelectedListener mCallback =新OnSelectedListener(){
公共无效getFailureDialog(){
JOptionPane.showMessageDialog(NULL,发生的错误。);
}
};
公共接口OnSelectedListener
{
公共无效getFailureDialog();
}
公共无效myRecord(字符串电子邮件)
{
mCallback.getFailureDialog(); //现在这个工作。
}
}
I am trying to call the method getFailureDialog()
of the interface OnSelectedListener
.
The method is implemented in MainActivity.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 calling getFailureDialog()
on uninitialized object. Obviously, interface methods are never initialized. But then how do I call the method getFailureDialog()
from my class Common.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)
解决方案
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.
}
}
相关推荐
最新文章