#android #class #dialog
#Android #класс #диалог
Вопрос:
Итак, я создал пользовательский диалоговый класс, но когда я пытаюсь его закрыть, он не закрывается.
Вот часть кода для закрытия диалога
public static void CountDownDialog(final Activity activity){
countDownDialog = new Dialog(activity, R.style.dialog);
...
negativeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss_dialog();
}
});
countDownDialog.show();
...
}
И метод, который должен закрыть диалоговое окно
private static void dismiss_dialog() {
countDownDialog.dismiss();
}
Ответ №1:
Насколько я понимаю из вашего примера, вы на самом деле не создаете какой-либо пользовательский диалоговый класс. Вы создаете обычный диалог и устанавливаете этот диалог в качестве члена в своем классе, но yiu использует статические функции. Вы можете попытаться вернуть диалоговое окно instant вместо того, чтобы устанавливать его в этом классе, тогда у вас будет ссылка на ваш экземпляр dialog от вашего вызывающего абонента и в любое время отклонить вызов для этого экземпляра.
Ответ №2:
Пример диалога;
public class MyDialogFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_sample_dialog, container, false);
Button dismiss = (Button) rootView.findViewById(R.id.dismiss);
getDialog().setTitle(getResources().getString(R.string.app_name));
dismiss.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
return rootView;
}
}
Как вызвать;
FragmentManager fm = getFragmentManager();
MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.show(fm, "");