我在一个通用类中创建了一个Interface。我在Activity中调用了inteface函数。我想在片段中实现接口方法。
这是Utility.java中的接口
public interface CloseMenu{
public void closemenu(View view);
}
这是我在“活动”中调用此接口的方式: 声明:
public Utility.CloseMenu closeMenu;
初始化onCreate:
closeMenu= (Utility.CloseMenu) this;
呼叫界面:
closeMenu.closemenu(view);
在片段类中,我已经实现了此接口:
@Override
public void closemenu(View view) {
view=mLoginFragmentView;
slideDown(view);
}
但是我因为以下原因而崩溃:
java.lang.RuntimeException:无法启动活动ComponentInfo {com.zinedroid.hospitalmanagement / com.zinedroid.hospitalmanagement.Activity.HomeActivity}:java.lang.ClassCastException:com.zinedroid.hospitalmanagement.Activity.HomeActivity无法投射com.zinedroid.hospitalmanagement.Common.Utility $ CloseMenu
有人可以帮助我吗?
答案 0 :(得分:1)
我已经解决了这个问题。closemenu应该在实现片段的片段的onAttach中初始化。
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
activity = getActivity();
((HomeActivity)activity).closeMenu = this;
}