ClassCastException:MainActivity 无法转换为接口 (NetworkCallback)
ClassCastException:MainActivity cannot be cast to Interface(NetworkCallback)
我的应用程序在尝试调用 RegisterApi 和 LoginApi 时崩溃 类。
btnDismiss.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Boolean isVerify = verify();
if (isVerify == true) {
checkConn();
if ((isInternetPresent)) {
if (status == 1) {
if (rb_01.isChecked()) {
RegisterApi api=new RegisterApi(context,(NetworkCallback) context);
api.processRegister("android","12345",et_name.getText().toString(),
et_email.getText().toString(),et_mob.getText().toString(),et_pass.getText().toString());
Utility.HideSoftKeyboard(activity);
} else {
showBlueAlert("Please accept the Terms And Conditions");
}
} else if (status == 0) {
LoginApi api=new LoginApi(context, (NetworkCallback) context);
api.processLogin("android","12345",et_email.getText().toString(),et_pass.getText().toString());
Utility.HideSoftKeyboard(activity);
}
}
}
}});
Logcat
10-15 12:47:23.433 32762-32762/com.shopping.faantush D/AndroidRuntime: Shutting down VM
10-15 12:47:23.436 32762-32762/com.shopping.faantush E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.shopping.faantush, PID: 32762
java.lang.ClassCastException: com.shopping.faantush.MainActivity cannot be cast to com.shopping.faantush.callback.NetworkCallback
at com.shopping.faantush.slidingmenuactivity.LoginPopUp.onClick(LoginPopUp.java:250)
at android.view.View.performClick(View.java:5280)
at android.view.View$PerformClick.run(View.java:21239)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
请帮我解决这个问题...谢谢...
如果您想在 fragment 和 activity 之间进行通信,您必须确保其父 activity 必须实现您在 Fragment 中创建的接口。
参考示例:http://simpledeveloper.com/how-to-communicate-between-fragments-and-activities/
您应该在 MainActivity 中实现 NetworkCallback 或以匿名方式传递引用 class。
以匿名方式传递引用 class
RegisterApi api=new RegisterApi(context,new NetworkCallback(){
//override your callback methods here
});
登录相同API
LoginApi api=new LoginApi(context, new NetworkCallback(){
//override your callback methods here
});
我的应用程序在尝试调用 RegisterApi 和 LoginApi 时崩溃 类。
btnDismiss.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Boolean isVerify = verify();
if (isVerify == true) {
checkConn();
if ((isInternetPresent)) {
if (status == 1) {
if (rb_01.isChecked()) {
RegisterApi api=new RegisterApi(context,(NetworkCallback) context);
api.processRegister("android","12345",et_name.getText().toString(),
et_email.getText().toString(),et_mob.getText().toString(),et_pass.getText().toString());
Utility.HideSoftKeyboard(activity);
} else {
showBlueAlert("Please accept the Terms And Conditions");
}
} else if (status == 0) {
LoginApi api=new LoginApi(context, (NetworkCallback) context);
api.processLogin("android","12345",et_email.getText().toString(),et_pass.getText().toString());
Utility.HideSoftKeyboard(activity);
}
}
}
}});
Logcat
10-15 12:47:23.433 32762-32762/com.shopping.faantush D/AndroidRuntime: Shutting down VM 10-15 12:47:23.436 32762-32762/com.shopping.faantush E/AndroidRuntime: FATAL EXCEPTION: main Process: com.shopping.faantush, PID: 32762 java.lang.ClassCastException: com.shopping.faantush.MainActivity cannot be cast to com.shopping.faantush.callback.NetworkCallback at com.shopping.faantush.slidingmenuactivity.LoginPopUp.onClick(LoginPopUp.java:250) at android.view.View.performClick(View.java:5280) at android.view.View$PerformClick.run(View.java:21239) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:234) at android.app.ActivityThread.main(ActivityThread.java:5526) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
请帮我解决这个问题...谢谢...
如果您想在 fragment 和 activity 之间进行通信,您必须确保其父 activity 必须实现您在 Fragment 中创建的接口。
参考示例:http://simpledeveloper.com/how-to-communicate-between-fragments-and-activities/
您应该在 MainActivity 中实现 NetworkCallback 或以匿名方式传递引用 class。
以匿名方式传递引用 class
RegisterApi api=new RegisterApi(context,new NetworkCallback(){
//override your callback methods here
});
登录相同API
LoginApi api=new LoginApi(context, new NetworkCallback(){
//override your callback methods here
});