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

如何返回Kotlin中的多值视图?

宋明亮
2023-03-14

我试图从一个片段中更改另一个片段中的imageview。但是由于没有container就无法做到这一点,我不得不使用inflater方法创建另一个view值。然后我需要使用inflater方法返回这些视图值。如何返回两个视图?

代码是在一个片段中编写的:

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        val view = inflater.inflate(R.layout.firstfragment, container, false)
        val view2 = inflater.inflate(R.layout.secondfragment, container, false)

        val imgPF: ImageView = view2.findViewById(R.id.imageView)

        imgPF.setImageResource(R.drawable.image_29)

        view.ButtonFromFirstFragment.setOnClickListener{
            //Unimportant code
        }

        setHasOptionsMenu(true)

        return view //Approximately here i need to return two views, but how? 
                    //And can it be done somehow differently?
    }

共有1个答案

宦树
2023-03-14

基本上,你不应该在一个片段内有两个片段。请仔细检查您没有混淆片段和视图。

如果你想在一个activity中有这两个片段,并且你同时显示你的两个片段,那么你应该有两个单独的片段:

片段A:

(...)

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        val view = inflater.inflate(R.layout.firstfragment, container, false)

        view.ButtonFromFirstFragment.setOnClickListener{
            //Unimportant code
        }

        return view
    }

(...)

片段B:(...)

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        val view = inflater.inflate(R.layout.secondfragment, container, false)

        val imgPF: ImageView = view.findViewById(R.id.imageView)

        imgPF.setImageResource(R.drawable.image_29)
    
        return view 
    }
 类似资料:
  • 我正在尝试从函数返回布尔值。 错误:布尔文字不符合预期的类型单位。 我知道unit是kotlin中的默认返回类型。我将如何将其更改为布尔值。

  • 问题内容: 在Java中是否可以从方法返回两个或多个值到main?如果是这样,有可能吗?如果没有,我们怎么办? 问题答案: 你可以使用Java返回Class的对象。 如果要返回多个相关的值,则将它们封装到一个类中,然后返回该类的对象是有意义的。 如果要返回不相关的值,则可以使用Java的内置容器类(例如Map,List,Set等)。有关更多详细信息,请检查java.util包的JavaDoc。

  • 5.3. 多返回值 在Go中,一个函数可以返回多个值。我们已经在之前例子中看到,许多标准库中的函数返回2个值,一个是期望得到的返回值,另一个是函数出错时的错误信息。下面的例子会展示如何编写多返回值的函数。 下面的程序是findlinks的改进版本。修改后的findlinks可以自己发起HTTP请求,这样我们就不必再运行fetch。因为HTTP请求和解析操作可能会失败,因此findlinks声明了2

  • 我有这个功能 我用它来表示,我知道T现在不是空的,所以给我它的非空的形式。 我对函数不满意,有更好的方法吗?我觉得我错过了一些基本的东西

  • 问题内容: 我如何使用类型提示来注释一个返回总是返回两个值的函数:a和a ?提示很接近,除了将返回值类型限制为元组,而不是生成器或其他可迭代类型。 我主要是好奇的,因为我想注释一个用于返回多个值的函数,如下所示: 通常函数喜欢做这样的事情(它返回一个元组),但我喜欢的类型暗示要足够灵活,以取代发电机或列表或别的东西返回的元组。 问题答案: 您总是返回 一个 对象;使用只需返回一个元组。 是的,完全

  • Go语言是支持多值返回的。怎么实现的呢?让我们先看一看C语言是如果返回多个值的。在C中如果想返回多个值,通常会在调用函数中分配返回值的空间,并将返回值的指针传给被调函数。 int ret1, ret2; f(a, b, &ret1, &ret2) 被调函数被定义为下面形式,在函数中会修改ret1和ret2。对指针参数所指向的内容的修改会被返回到调用函数,用这种方式实现多值返回。 void f(i