У меня проблема с моим кодом. Я создаю приложение, которое содержит bottomSheetDialogFragment и DialogFragment.Я пытался вызвать DialogFragment из BottomSheetDialogFragment.Это сработало для меня.Я хочу вернуть логическое значение из dialogFragment в BottomSheetDialogFragment, когда некоторые условия удовлетворяют.но я получаю ошибку, возвращая результат.
Класс FragmentBottonSheetCardOpen имеет следующий код:
view.d_btn_show.setOnClickListener {
//showPassCodeDialog()
showMyAuth()
}
private fun showMyAuth() {
val dialogFP = MyAuthDialogFragment()
val fm = fragmentManager
dialogFP.setType(MyAuthDialogFragment.Type.Type1
dialogFP.show(fm, MyAuthDialogFragment.FRAGMENT_TAG)
}
fun onAuthDone(ans: Boolean) {
if (ans) {
val tempCard = listCards[position]
Log.i("Message: ", "Position $position")
val handler = Handler()
handler.postDelayed({
// do Action
}, 5000)
}
}
, а класс MyAuthDialogFragment содержит
private var mFragmentCard: FragmentBottomSheetCardOpen? = null
private var mActivity: NewCardActivity? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
.........
}
override fun onAttach(context: Context?) {
super.onAttach(context)
when(mType) {
MyAuthDialogFragment.CardType.Type1 -> {
mFragmentCard = FragmentBottomSheetCardOpen() //This is not Working
}
MyAuthDialogFragment.CardType.Type2 -> {
mActivity = activity as NewCardActivity // This is Working
}
}
mInputMethodManager = context!!.getSystemService<InputMethodManager>(InputMethodManager::class.java)
}
private fun verifyPassword1 () {
if(currentPW == storedPW) {
currentPW = ""
when(mType) {
MyAuthDialogFragment.CardType.Type1 -> {
mFragmentCard!!.onAuthDone(true) //This is not working
}
MyAuthDialogFragment.CardType.Type2 -> {
mActivity!!.onAuthDone(true) // This is working
}
}
}
}
Пожалуйста, помогите мне.Заранее спасибо.