Моя проблема решена с помощью этих 5 шагов:
1. Создать интерфейс:
Я создаю OnCloseMenuListener
интерфейс, подобный этому:
interface OnCloseMenuListener {
void setOnCloseMenu();
}
2. Элемент интерфейса в Class1:
В Class1
я реализую этот интерфейс:
public class Class1 extends AppCompatActivity implements OnCloseMenuListener
3. Переопределить setOnCloseMenu
метод:
В Class1 я переопределяю метод setOnCloseMenu
моего интерфейсного класса:
@Override
public void setOnCloseMenu() {
Log.e("<<O>>", "The menu closed...");
}
4. Создать CloseMenu
метод:
Я создаю этот static
метод в Class1
, когда меню закрывается в Class2
, он называется:
public static void CloseMenu(OnCloseMenuListener close, boolean isClose) {
if (isClose)
close.setOnCloseMenu();
}
}
5. Звонок CloseMenu
в Class2
:
В dispatchTouchEvent
методе Class2
, когда условие было true
и меню закрыто, я запускаю Class1
, используя CloseMenu
метод:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
y = ev.getY();
if (y > 400) {
closeDrawers();
// This code notify Class1
Class1.CloseMenu(new Class1(),true);
return super.dispatchTouchEvent(ev);
}
}
Надеюсь, это будет полезно тем, кто позже столкнулся с этой проблемой.