У меня есть нижний лист, который проверяет, подключен ли интернет или нет! если нет подключенного нижнего листа, отображается, если нет нижнего листа, уберите. Я использовал функцию bottomSheetDialog.dismiss();
, чтобы пользователь не нажимал на экран, чтобы скрыть нижний лист. Теперь я хочу, чтобы пользователь если нажимал назад, когда нижний лист показывался, выходил из приложения.
не выходить из нижней части сначала, а затем выйти из приложения
Вот что я сделал до сих пор
Я использовал интерфейс под названием IOnBackPressed и переопределяю выходное приложение из MainActivty с помощью этого кода.
@Override
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_layout);
if (!(fragment instanceof IOnBackPressed)) {
super.onBackPressed();
}
}
И я добавил метод выхода приложения во фрагмент, который имеет нижний лист HomeFragment.
@Override
public boolean onBackPressed() {
bottomSheetDialog.dismiss();
requireActivity().moveTaskToBack(true); //exit the app when press back
requireActivity().finish();
return true;
}
Но это не работает, и когда я нажимаю назад, приложение не закрывается.
Вот мой метод для нижнего листа
private void showBottomSheetDialog() {
bottomSheetDialog = new BottomSheetDialog(requireContext());
bottomSheetDialog.setContentView(R.layout.bottomsheet_no_internet);
if (CheckNetwork.isInternetAvailable(requireActivity())) {
bottomSheetDialog.dismiss();
} else {
bottomSheetDialog.setCancelable(false);
bottomSheetDialog.show();
}
Button buttonNoInternet = bottomSheetDialog.findViewById(R.id.buttonNoInternet);
assert buttonNoInternet != null;
buttonNoInternet.setOnClickListener(v -> {
if (CheckNetwork.isInternetAvailable(requireActivity())) {
adapter.notifyDataSetChanged();
bottomSheetDialog.dismiss();
} else {
bottomSheetDialog.dismiss();
adapter.notifyDataSetChanged();
bottomSheetDialog.show();
}
});
}
Итак, как я могу это сделать?