我有一个包含简单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()
)
}
}
我将不胜感激!
编辑:添加了完整的代码
您可以使用getActivity()
,它返回与getActivity()
相关的活动。活动为fragment
(因为context
扩展为Activity
)。