如何在Kotlin中使用片段内部的上下文?

问题描述 投票:-2回答:1

我有一个包含简单ImageView的片段。当用户点击图像时,我只想显示一个简单的吐司,但是我不能简单地使其工作。

我以为makeText行中的requireContext()可以解决问题,但这不起作用。我只是收到类型不匹配错误。如果使用“ this”,则相同。

import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import kotlinx.android.synthetic.main.fragment_about.view.*

class AboutFragment : Fragment() {

    companion object {
        fun newInstance(): Fragment {
            return AboutFragment()
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_about, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        view.textTitleAbout.text = getString(R.string.About)

        view.imageViewLogo.setOnClickListener(
            Toast.makeText(WHAT_TO_PUT_HERE(), "You clicked on ImageView.", Toast.LENGTH_SHORT).show()
        )
    }
}

我将不胜感激!

编辑:添加了完整的代码

android kotlin fragment toast
1个回答
-1
投票

您可以使用getActivity(),它返回与getActivity()相关的活动。活动为fragment (因为context扩展为Activity

© www.soinside.com 2019 - 2024. All rights reserved.