繁体   English   中英

使用Bundle将文件从Activity传递到片段

[英]Passing a file from Activity to fragment using Bundle

好的,所以我正在尝试将文件管理器(Activity)中的任何文件传递给片段。 这是我的代码:

               Bundle bundle = new Bundle ();
                    bundle.putString ("File", chosenFile);
                    Intent intent = new Intent (getApplicationContext (), UploadFragment.class);
                    intent.putExtras (bundle);
                    startActivity (new Intent (FileExplore.this, UploadFragment.class));

应用程序在Logcat中崩溃是无法找到显式活动类的状态。 然后,这给了我一行代码发生错误的那一行,即startActivity(new Intent(.....)。是因为我没有将Intent从Activity正确地发送到Fragment而导致的错误?

在“片段”中,button.setOnclickListener()下有以下代码。

Intent intent = new Intent (getActivity (), FileExplore.class);
            startActivity (intent);

首先,您无法使用Intent创建片段或向其发送数据。

您可以通过调用以下getFragmentManager().beginTransaciton().add(R.id.id_of_container, new UploadFragment(), false).commit();在活动中放入一个片段: getFragmentManager().beginTransaciton().add(R.id.id_of_container, new UploadFragment(), false).commit();

如果要将数据从活动传递到片段,则可以使用setArgument()方法在片段创建时进行setArgument() ,例如:

Bundle bundle = new Bundle ();
bundle.putString ("File", chosenFile);

UploadFragment fragment = new UploadFragment();
fragment.setArguments(bundle);

getFragmentManager().beginTransaction().add(R.id.fragment_container, fragment).commit();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM