Интерфейс не вызывает фрагмент

1

Я создал интерфейс в общем классе. Я вызвал функцию интерфейса в Activity. Я хочу реализовать интерфейсный метод во фрагменте.

это интерфейс в Utility.java

 public interface CloseMenu{
    public void closemenu(View view);
}

Вот как я называю этот интерфейс в Activity: объявление:

 public Utility.CloseMenu closeMenu;

инициализация на создание:

  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

Кто-нибудь может мне помочь, пожалуйста?

Теги:
fragment
interface

1 ответ

1
Лучший ответ

Я решил проблему. Closemenu должен быть инициализирован в onAttach фрагмента, который реализует фрагмент.

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню