簡體   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