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

如何将空值传入碎片newInstance方法?

吴和硕
2023-03-14

我已经使用Kotlin创建了一个片段,您知道在Java中有一个方便的静态方法来设置片段参数。像这样:

public static MyFragment newInstance(Bundle args){
    MyFragment fragment = new MyFragment();
    fragment.setArguments(args);
    return fragment;
}

我试图在Kotlin中使用一个同伴对象来实现这一点,因为它是静态的。以下是我到目前为止所做的编译:

companion object {
    fun newInstance(@Nullable b: Bundle): MyFragment {
        val frag = MyFragment()
        frag.arguments = b
        return frag
    }
}

如何传入null

共有1个答案

慕容弘懿
2023-03-14

在Kotlin中,您不传递@nullable,而是在类型名称后面写一个问号()以标记它为空。

fun newInstance(b: Bundle?): MyFragment
 类似资料:
  • 我可以在D片段参数中设置所有六个arg,但在这种情况下,我应该在每个方向上传递所有六个变量。那么有没有其他的方法直接传递我想要的args在特定的方向上,然后在D片段中检索它

  • 如何将数据写入Kinesis中的特定分片? 博托医生说 分区键是Unicode字符串,每个键的最大长度限制为256个字符。MD5哈希函数用于将分区键映射到128位整数值,并使用碎片的哈希键范围将相关数据记录映射到碎片。您可以通过使用ExplicitHashKey参数显式指定哈希值来覆盖哈希分区键以确定碎片。 然而,我实际上如何做到这一点?

  • 第一个数字:3第二个数字:4和:7

  • 我已经创建了碎片标准方式(Android工作室生成的骨架)。所以我有newInstance静态方法: 然后,在override中,我需要检索我的集合,非常标准的方式: 问题是集合非常大,因此我得到了异常: java.lang.RuntimeException:Android.os.TransactionToolargeException:数据包大小592196字节 在我的应用程序中的其他地方(奇怪

  • 我有三个片段F1 F2 F3 F4都可以从侧边栏访问。 这四个都可以在任何时间以任何顺序调用, 现在我想知道,如果已经单击(创建)了F1,则不再创建F1,而只使用片段管理器将片段F1带回到前面。所有其他片段相同 到目前为止,我对容器中的每个片段都尝试了这种方法(片段活动) 如果部分确保不再重新创建片段(如果已经创建),那么我应该在部分中写些什么,以便可以将已经创建的片段放在视图层次结构的前面 请帮

  • 第一个数字:3第二个数字:4和:7