android-fragments 如何在片段中显示吐司Widget?

f1tvaqid  于 2022-11-14  发布在  Android
关注(0)|答案(3)|浏览(134)

我在一个活动片段中,希望在满足并完成提交按钮的命令后显示一个吐司小部件。
代码:

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.makeText(this@HomeFragment, "saving", Toast.LENGTH_SHORT).show()

错误:

agxfikkp

agxfikkp1#

你需要一个上下文来显示吐司,代码如下:

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

谢谢

z8dt9xmd

z8dt9xmd2#

上下文不应是可为null的类型。错误显示类型不匹配。

选项1:

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

!!(非空Assert运算符)用于表示变量不为空。

选项2:

使用let和安全调用

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

有关详细信息,请参阅:https://kotlinlang.org/docs/reference/null-safety.html

wtlkbnrh

wtlkbnrh3#

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

相关问题