Как вернуть логическое значение из dialogFragment в другой dialogFragment - PullRequest
0 голосов
/ 18 октября 2018

У меня проблема с моим кодом. Я создаю приложение, которое содержит 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
            }
        }
    }
}

Пожалуйста, помогите мне.Заранее спасибо.

...