繁体   English   中英

将数据从片段传递到活动不一样

[英]passing data from fragment to activity is not same

我的活动有片段。 我想将数据从片段发送到活动。 在此处输入图片说明

我如何在Fragment中获取数据并发送给我的Activity:

val edit = question!!.id
(activity as QuestionActivity).kirimItem(edit)

活动中:

fun kirimItem(item: String) {
    idItem = item
}

我在onClick旁边的按钮中调用idItem并显示Toast来自idItem的值

在片段中,当我测试数据时,问题!!。id = 8,但吐司显示11。问题是,为什么将数据从片段传递到活动并不相同。 请指导我:(

有建议在活动和片段(在同一活动中)之间传递数据。 这些是可能的方案。

  1. (活动->活动)
  2. (活动->片段)
  3. (片段->活动)
  4. (片段->片段)

对于1.,只需使用android.content.Intent 对于2.,3。和4.场景,我们可以使用android.arch.lifecycle.ViewModel在它们之间传递数据。 示例4. (Fragment -> Fragment)在此处( https://developer.android.com/topic/libraries/architecture/viewmodel )下的主题Share data between fragments

对于该示例,它不仅可以应用于4.场景,而且还可以应用于2.3. .。

我不确定其余的代码是什么。 下面的这段代码对我有用。

// 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()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM