簡體   English   中英

如何在 Fragment 中顯示 Toast 小部件?

[英]How to Display a Toast Widget in A Fragment?

我在一個活動片段中,我想在滿足並完成提交按鈕的命令后顯示一個吐司小部件。

代碼:

class HomeFragment : Fragment() {

private val currentUserDocRef = Firebase.firestore.collection("users")

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    val view = inflater.inflate(R.layout.fragment_home, container, false)

    view.apply {

        submitbutton.setOnClickListener {
            FirestoreUtil.updateCurrentUser(
                edittextPersonname.text.toString(),
                editTextBio.text.toString(),
                editTextTextEmailAddress.text.toString(),
                edittextage.text.toString()

                )
        }

        return view
    }

}

我的代碼中沒有錯誤,但是在嘗試聲明 toast 小部件時出現錯誤。 代碼:

 Toast.makeText(this@HomeFragment, "saving", Toast.LENGTH_SHORT).show()

錯誤:

錯誤信息

你需要一個上下文來顯示吐司,這里是代碼:

Toast.makeText(this@HomeFragment.requireActivity(), "saving", Toast.LENGTH_SHORT).show()

謝謝

上下文不應為可空類型。 該錯誤表明它是類型不匹配。

選項1:

Toast.makeText(context!!, "saving", Toast.LENGTH_SHORT).show()

!! (非空斷言運算符)用於表示變量不是 null。

選項 2:

使用 let 和 safe 調用

context?.let{ context->
    Toast.makeText(context, "saving", Toast.LENGTH_SHORT).show()
}

參考: https://kotlinlang.org/docs/reference/null-safety.html了解更多詳情

Toast.makeText(activity,message,Toast.LENGTH_LONG).show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM