Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在片段之间传递数据时出错_Android_Kotlin_Android Fragments - Fatal编程技术网

Android 在片段之间传递数据时出错

Android 在片段之间传递数据时出错,android,kotlin,android-fragments,Android,Kotlin,Android Fragments,我试图在两个片段之间传递数据,但在启动fullFragment时,执行过程中出现了参数错误 我更新了我的代码 你能帮我吗 架构: ListFragment(发件人): 我不知道“newFragment.arguments=args”做什么,因为在FullFragment类中我没有看到任何具有该名称的变量,但是您必须使用“Fragment.setArguments(Bundle)”从第一个变量设置片段参数。然后在全文中,您将从“FullFragment.getArguments()”方法得到正确

我试图在两个片段之间传递数据,但在启动fullFragment时,执行过程中出现了参数错误 我更新了我的代码 你能帮我吗

架构:

ListFragment(发件人):

我不知道“newFragment.arguments=args”做什么,因为在FullFragment类中我没有看到任何具有该名称的变量,但是您必须使用“Fragment.setArguments(Bundle)”从第一个变量设置片段参数。然后在全文中,您将从“FullFragment.getArguments()”方法得到正确的结果

PS:别忘了在Fragment类中上下文可以为NULL,应该以正确的方式处理它。

我不知道“newFragment.arguments=args”是做什么的,因为在FullFragment类中我没有看到任何具有该名称的变量,但是您必须使用“Fragment.setArguments(Bundle)”从第一个变量设置片段参数。然后在全文中,您将从“FullFragment.getArguments()”方法得到正确的结果


PS:别忘了在Fragment类中上下文可以为NULL,应该以正确的方式处理它。

Hello。正如我们所看到的,共享代码和日志之间存在差异。您正在创建
ListeFragment
,但在日志中我们发现
FullFragment
的错误。你能重新检查一下导航部分吗?如果不是导航问题,请在帖子中添加更多详细信息。我更新了我的代码没有崩溃,但value1为空。首先,在你的ListFragment中,你可以在var photo1中获得imagebutton。使用photo1而不是imagebutton本身。在FullFragment中,请尝试在oncreateView中声明getArgument,而不是在创建时声明getArgument。我希望对你有帮助。正如我们所看到的,共享代码和日志之间存在差异。您正在创建
ListeFragment
,但在日志中我们发现
FullFragment
的错误。你能重新检查一下导航部分吗?如果不是导航问题,请在帖子中添加更多详细信息。我更新了我的代码没有崩溃,但value1为空。首先,在你的ListFragment中,你可以在var photo1中获得imagebutton。使用photo1而不是imagebutton本身。在FullFragment中,请尝试在oncreateView中声明getArgument,而不是在创建时声明getArgument。我希望这会有帮助
class ListeFragment : Fragment() {

companion object {
    fun newInstance(s: String) = ListeFragment()
}

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

    val layout = inflater.inflate(R.layout.liste_fragment, container, false)
    val photo1 = layout.findViewById<ImageView>(R.id.imageButton1)

    val model = ViewModelProviders.of(this).get(ListeViewModel::class.java)

        imageButton1.setOnClickListener {
            val newFragment = FullFragment()
            val args = Bundle()
            args.putString("key1", "data")
            newFragment.arguments = args
          Navigation.findNavController(imageButton1).navigate(R.id.versFullFragment);
        }
class FullFragment : Fragment() {
companion object {
    fun newInstance() = FullFragment()
}

private lateinit var viewModel: FullViewModel

override fun onCreate( savedInstanceState: Bundle?) {

    super.onCreate(savedInstanceState)
    var value1 = getArguments()?.getString("key1")
    Log.v("value" , value1.toString())
    Toast.makeText(context, value1.toString(), Toast.LENGTH_SHORT).show()
}

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    val layout = inflater.inflate(R.layout.full_fragment, container, false)
    return layout
}