我正在尝试创建一个意图,该意图使用主活动中某个片段中的按钮来打开新活动。弹出错误,在“ Intent”对象下面加红线。错误是:
以下任何函数均不能使用提供的参数来调用。 (Context !, Class <*>!)在android.content.Intent中定义 (String !, Uri!)在android.content.Intent
中定义我尝试了以下代码
val fieldIntent = Intent(this@Fragment1, ProductsAndInputs::class.java )
代替最初的
val fieldIntent = Intent(this, ProductsAndInputs::class.java )
基于在其他论坛上提供的答案,但它也无效
class Fragment1 : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view: View = inflater!!.inflate(R.layout.fragment_fragment1, container, false)
view.btn_field.setOnClickListener { view ->
val fieldIntent = Intent(this@Fragment1, ProductsAndInputs::class.java )
Log.i("Button clicked", "Field button")
}
return view
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
}
答案 0 :(得分:0)
您需要添加此代码 val fieldIntent = Intent(this @ Fragment1,ProductsAndInputs :: class.java) startActivity(fieldIntent)
答案 1 :(得分:0)
问题在于Intent构造函数需要一个上下文,但是您要向其传递一个Fragment。但是您可以从Fragment获取上下文:尝试以下操作:
val fieldIntent = Intent(this@Fragment1.context, Products...
哦,就像Ajay所说的,您也确实需要调用startActivity。