当前位置: 首页 > 知识库问答 >
问题:

从Kotlin中的片段声明中的意图时出错:

柳胜
2023-03-14

我正在尝试创建一个意图,它使用主活动中的一个片段中的一个按钮来打开一个新活动。错误弹出,在'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)
        }

    }

共有1个答案

韩刚洁
2023-03-14

问题是意图构造函数想要一个上下文,但您传递给它的是一个片段。但您可以从片段中获取上下文:尝试以下操作:

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

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

 类似资料:
  • 我试图在一个片段下创建一个带有Intent的setOnClickListener,但当我试图用以下方法实例化Intent对象时,我得到了以下错误: 错误消息:无法使用提供的参数调用下列函数。(上下文!,类<*>!)在Android.Content.Intent(String!,URI!)中定义在Android.Content.Intent中定义 Logcat错误:

  • 我是 Kotlin 的新手,我有以下疑问 - 使用Java到Kotlin转换器(此链接),我将以下Java代码转换为Kotlin。 Java类: 生成的Kotlin类: 但是我不明白Java代码和生成的静态编程语言代码是如何等价的,因为类数据成员的可见性修饰符从私有(Java)变为公共(静态编程语言)。 我相信,如果可见性修饰符被保留(数据成员在静态编程语言中被声明为私有),getter和sett

  • 我有一个包含框架布局的活动,片段A托管在这里与一起。 此片段A托管了另外两个包含回收器视图的片段——使用< code > fragmentstatepageradar 的片段A1和片段A2。此时,我能够在片段A1和A2中使用< code > getSupportFragmentManager()获得父片段。 单击A1和A2中的回收器视图项会产生另一个片段,比如片段B,它会替换片段A并将其添加到ba

  • 我正在考虑一个简单的例子,包括以下部分: Main活动:有编辑文本、按钮、viewPager 碎片A:什么都没有 碎片B:有文本视图 所以,在屏幕上,你可以滑动查看每个片段。我希望我的例子有这样一个功能:如果一个人在editText中写了一个文本,然后点击按钮,它就会出现在片段B中。 A使用notifyDatsetChanged()尝试了它,但不起作用。有人能帮忙吗?下面是我的全部代码: 主要活动

  • 我使用FragmentActivity在片段之间切换。但我希望在片段上有一个管理按钮,当我单击它时,一个新的片段或活动看起来像一个孩子(在操作栏中有后退按钮)。 我怎样才能做到? 这是我的代码,可以使用,但“后退”按钮不会出现在操作栏中: 片段: 活动(目前……但如果需要,可能会出现碎片?): 也许我必须更改舱单中的某些内容?

  • 我的代码中有以下工作流程。我有,它启动一个新的使用starActivityForResult(意图,请求代码)。活动B有一个片段,比如,它包含一个listview(它的适配器有一个arraylist)和下面的编辑文本,可以将新值添加到listview中。 我打算将数据发送回。我在中实现了一个接口,该接口在同一片段的onPause()方法中调用。 子任务是在“编辑文本”中从“添加”按钮添加新项时更新