我如何在Fragment中获取数据并发送到我的Activity:
val edit = question!!.id
(activity as QuestionActivity).kirimItem(edit)
活动中:
fun kirimItem(item: String) {
idItem = item
}
然后我在onClick旁边的按钮中调用idItem,并向Toast显示idItem中的值
在片段中,当我测试数据时,问题!!。id = 8 但是吐司正显示11。问题是,为什么将数据从片段传递到活动并不相同。请指导我:(
答案 0 :(得分:0)
对于在活动和片段(在同一活动中)之间传递数据的建议。这些都是可能的情况。
对于1.,只需使用android.content.Intent
。对于2.,3。和4.场景,我们可以使用android.arch.lifecycle.ViewModel
在它们之间传递数据。 4. (Fragment -> Fragment)
的示例在主题Share data between fragments
下的此处(https://developer.android.com/topic/libraries/architecture/viewmodel)。
例如,它不仅可以应用于4.
场景,还可以应用于2.
和3.
。
答案 1 :(得分:0)
我不确定我们剩下的代码是什么。下面的这段代码对我有用。
// Fragment, `btn` is Button and `edt` is EditText
btn.setOnClickListener {
(activity as MainActivity?)?.callToast(edt.text.toString())
}
// Activity
fun callToast(str: String) {
Toast.makeText(this, str, LENGTH_SHORT).show()
}