接口未在片段中调用

时间:2018-11-09 07:31:40

标签: android interface fragment

我在一个通用类中创建了一个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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。closemenu应该在实现片段的片段的onAttach中初始化。

 @Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    activity = getActivity();

    ((HomeActivity)activity).closeMenu = this;
}