У меня есть класс с именем AlertDialogFragment, который будет использоваться для создания диалогового окна с предупреждением при необходимости во всей моей программе.Фрагмент, который создает диалог, вызовет функцию, если нажата положительная кнопка, или ничего, если нажата отрицательная кнопка.Я довольно новичок в разработке Android и любые советы или помощь приветствуется.
Вот мой AlertDialogFragment:
class AlertDialogFragment : DialogFragment() {
companion object {
private val TAG = "AlertDialogFragment"
fun newInstance(message: String, positiveBtnText: String, negativeBtnText: String): AlertDialogFragment {
val fragment = AlertDialogFragment()
fragment.isCancelable = false
val args = Bundle()
args.putString("aMessage", message)
args.putString("aPositiveBtnText", positiveBtnText)
args.putString("aNegativeBtnText", negativeBtnText)
fragment.arguments = args
return fragment
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
Log.d(TAG, "onCreateDialog called")
super.onCreateDialog(savedInstanceState)
return activity?.let {
val builder = AlertDialog.Builder(it)
builder.setMessage(arguments?.getString("aMessage"))
.setPositiveButton(arguments?.getString("aPositiveBtnText"), DialogInterface.OnClickListener { dialog, id ->
Log.d(TAG, "Yes!")
})
.setNegativeButton(arguments?.getString("aNegativeBtnText"), DialogInterface.OnClickListener { dialog, id ->
Log.d(TAG, "Dismiss!")
})
Log.d(TAG, "onCreateDialog ending")
builder.create()
} ?: throw IllegalStateException("Activity can not be null")
}
}
Вот моя попытка инициализировать диалоговое окно предупреждения и установить целевой фрагмент:
try {
AlertDialogFragment alertDialogFragment = new AlertDialogFragment().Companion.newInstance(
"Would you like to continue?",
"Yes",
"Dismiss");
alertDialogFragment.setTargetFragment(this, TARGET_FRAGMENT_REQUEST_CODE);
alertDialogFragment.show(getActivity().getSupportFragmentManager(), "dialog");
}catch (Exception e){
e.printStackTrace();
}
Заранее спасибо за любую помощь!
РЕДАКТИРОВАТЬ: Я использую kotlin для диалогового окна предупреждения и фрагмент, который его инициализирует, находится в Java.