Java 如何打开来自其他活动的片段

Java 如何打开来自其他活动的片段,java,android,android-fragments,android-intent,android-activity,Java,Android,Android Fragments,Android Intent,Android Activity,我正在尝试使用startactivityfromfragment() 我觉得sumthing对我来说并不是一个好榜样 到目前为止,我能够将数据(web url字符串)从一个片段移动到另一个片段 现在这是一个不同的故事。。我想我需要使用startactivityfromfragment()。。 但是我不知道怎么做 Bundle bundle = new Bundle(); bundle.putString("WEB","someweb.com");

我正在尝试使用startactivityfromfragment() 我觉得sumthing对我来说并不是一个好榜样 到目前为止,我能够将数据(web url字符串)从一个片段移动到另一个片段 现在这是一个不同的故事。。我想我需要使用startactivityfromfragment()。。 但是我不知道怎么做

Bundle bundle = new Bundle();
                bundle.putString("WEB","someweb.com");
                MultiFragment multiFragment = new MultiFragment();
                multiFragment.setArguments(bundle);
                Intent intent1 = new Intent(getBaseContext(), MultiFragment.class);
                startActivityFromFragment(MainActivity.class,intent1,"WEB");
试试这个: 将此代码放在当前片段中,从中打开活动

 Intent i=new Intent(getActivity(),Multifragment.class);
    i.putExtra("key","value");
    getActivity().startActivity(i);
在下一个包含片段的活动中,将以下内容放入:

String value=getIntent().getStringExtra("key");
Bundle bundle=new Bundle();
bundle.putString("key",value);
YourFragmentClass ob=new YourFragmentClass();
ob.setArguments(bundle);
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.your_container_layout,ob).addToBackStack(null).commit();
然后,在课堂上:

Bundle=getArguments();
if(bundle!=null}
String value=bundle.getString("key");
试试这个: 将此代码放在当前片段中,从中打开活动

 Intent i=new Intent(getActivity(),Multifragment.class);
    i.putExtra("key","value");
    getActivity().startActivity(i);
在下一个包含片段的活动中,将以下内容放入:

String value=getIntent().getStringExtra("key");
Bundle bundle=new Bundle();
bundle.putString("key",value);
YourFragmentClass ob=new YourFragmentClass();
ob.setArguments(bundle);
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.your_container_layout,ob).addToBackStack(null).commit();
然后,在课堂上:

Bundle=getArguments();
if(bundle!=null}
String value=bundle.getString("key");

使用活动名称作为存在多重片段的第二个参数

            Intent i = new Intent(MainActivity.this, ActivityName.class);
                       putExtras(bundle);
                        startActivity(i);
                        finish();

使用活动名称作为存在多重片段的第二个参数

            Intent i = new Intent(MainActivity.this, ActivityName.class);
                       putExtras(bundle);
                        startActivity(i);
                        finish();

方法1

要将数据从活动发送到另一个活动的片段,请使用bundle值调用普通intent,在另一个活动中检查getIntent()并从该片段调用方法

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("web_url", "url");
startActivity(intent);
和另一个活动的电话

String webUrl = getIntent().getStringExtra("web_url");
Fragment newFragment = getSupportFragmentManager().findFragmentById(R.id.frame_tab);
newFragment.openWeb(webUrl);
方法2 在第二个活动中,创建一个静态变量并保存getIntent()中的数据,然后在片段中使用该变量

方法3

    interface FragmentListner{
    void openFragment(String url);
}
活动A:

    FragmentListner frag = new FragmentListner();
    frag.openFragment("Url");
活动B:

class B implements FragmentListner{

void openFragment(String url){
//Open Fragment here
}

方法1

要将数据从活动发送到另一个活动的片段,请使用bundle值调用普通intent,在另一个活动中检查getIntent()并从该片段调用方法

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("web_url", "url");
startActivity(intent);
和另一个活动的电话

String webUrl = getIntent().getStringExtra("web_url");
Fragment newFragment = getSupportFragmentManager().findFragmentById(R.id.frame_tab);
newFragment.openWeb(webUrl);
方法2 在第二个活动中,创建一个静态变量并保存getIntent()中的数据,然后在片段中使用该变量

方法3

    interface FragmentListner{
    void openFragment(String url);
}
活动A:

    FragmentListner frag = new FragmentListner();
    frag.openFragment("Url");
活动B:

class B implements FragmentListner{

void openFragment(String url){
//Open Fragment here
}
我认为:

在不包含片段的活动中:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
                    intent.putExtra("something", "yep");
                    startActivity(intent);
Intent intent = getIntent();
String op = intent.getStringExtra("something");
if (op != null){
   getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
         new YourFragment()).addToBackStack(null).commit();
}
在下一个包含片段的活动中:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
                    intent.putExtra("something", "yep");
                    startActivity(intent);
Intent intent = getIntent();
String op = intent.getStringExtra("something");
if (op != null){
   getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
         new YourFragment()).addToBackStack(null).commit();
}
我认为:

在不包含片段的活动中:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
                    intent.putExtra("something", "yep");
                    startActivity(intent);
Intent intent = getIntent();
String op = intent.getStringExtra("something");
if (op != null){
   getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
         new YourFragment()).addToBackStack(null).commit();
}
在下一个包含片段的活动中:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
                    intent.putExtra("something", "yep");
                    startActivity(intent);
Intent intent = getIntent();
String op = intent.getStringExtra("something");
if (op != null){
   getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
         new YourFragment()).addToBackStack(null).commit();
}


您可以简单地使用意图从一个片段开始一个活动。我可以轻松地将意图用于主活动-true。。但是我想进入一个片段,它是来自另一个活动的MainActivity的一部分。你可以简单地使用intent从片段启动一个活动。我可以轻松地将intent用于主活动-true。。但是我想进入一个片段,它是MainActivity的一部分,来自另一个activityMaiinActivity不是一个封闭类。。所以这是一个错误。。一切都是错误谢谢。。我花了一段时间才明白你的意思——从一个活动到另一个包含一块岩石碎片的活动,这对我来说很有用!如果您使用的是sections寻呼机适配器,请参阅我的答案“Inactive”不是封闭类。。所以这是一个错误。。一切都是错误谢谢。。我花了一段时间才明白你的意思——从一个活动到另一个包含一块岩石碎片的活动,这对我来说很有用!如果您使用的是sections寻呼机适配器,请查看我的答案是的,但我需要进入activitymultifragment.class i中的特定片段webview的片段。。。我尝试将其称为片段,但没有成功是的,但我需要进入activitymultifragment.class i中的特定片段webview的片段。。。我试着把它称为片段,但没有成功是的,但它是另一个活动中的片段-不是活动到活动-你知道如何使用它吗?startactivityfromfragment()如果您想从片段中打开活动,请将“this”更改为getActivity(),并使用getActivity()。startActivity(intent);在另一个活动中初始化一个接口,并从该接口调用一个函数,并在该活动中实现,在该活动中,您希望在该方法上打开片段问题是-我需要它仅在我来自该活动时才打开-带我到多片段。。所有其他只是带我去MainFragmentyes但它是另一个活动中的一个片段-不是活动到活动-你知道如何使用它吗?startactivityfromfragment()如果您想从片段中打开活动,请将“this”更改为getActivity(),并使用getActivity()。startActivity(intent);在另一个活动中初始化一个接口,并从该接口调用一个函数,并在该活动中实现,在该活动中,您希望在该方法上打开片段问题是-我需要它仅在我来自该活动时才打开-带我到多片段。。其他的就带我去梅因