【问题标题】:Error declaring an Intent in from a Fragment in Kotlin:在 Kotlin 中从 Fragment 声明 Intent 时出错:
【发布时间】:2019-05-07 20:01:42
【问题描述】:

我正在尝试创建一个意图,该意图使用主要活动中的片段内的按钮来打开新活动。错误弹出,用红线在“意图”对象下划线。错误是:

以下函数都不能使用提供的参数调用。 (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)
        }

    }

【问题讨论】:

    标签: android android-intent kotlin


    【解决方案1】:

    问题在于 Intent 构造函数需要一个上下文,但您正在向它传递一个片段。但是您可以从 Fragment 中获取上下文:试试这个:

     val fieldIntent = Intent(this@Fragment1.context, Products...
    

    哦,正如 Ajay 所说,您还需要调用 startActivity。

    【讨论】:

      【解决方案2】:

      您需要添加此代码 val fieldIntent = Intent(this@Fragment1, ProductsAndInputs::class.java ) startActivity(fieldIntent)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-05
        • 2018-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多