Android 如何在FragmentActivity和Fragment之间进行通信?

Android 如何在FragmentActivity和Fragment之间进行通信?,android,android-fragments,Android,Android Fragments,这将使用导航抽屉、使用选项卡和使用片段 MainActivity.java public类MainActivity扩展了AppCompatActivity{ 抽屉布局我的抽屉布局; 导航视图myNavigationView; 碎片管理器myFragmentManager; FragmentTransaction我的FragmentTransaction; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanc

这将使用导航抽屉、使用选项卡和使用片段

MainActivity.java

public类MainActivity扩展了AppCompatActivity{
抽屉布局我的抽屉布局;
导航视图myNavigationView;
碎片管理器myFragmentManager;
FragmentTransaction我的FragmentTransaction;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyDroperLayout=(DroperLayout)findViewById(R.id.DroperLayout);
myNavigationView=(NavigationView)findViewById(R.id.nav_抽屉);
myFragmentManager=getSupportFragmentManager();
myFragmentTransaction=myFragmentManager.beginTransaction();
myFragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit();
myNavigationView.setNavigationItemSelectedListener(新建NavigationView.OnNavigationItemSelectedListener()){
@凌驾
公共布尔值onNavigationItemSelected(MenuItem selectedMenuItem){
myDrawerLayout.closeDrawers();
if(selectedMenuItem.getItemId()==R.id.nav\u item\u select1){
FragmentTransaction FragmentTransaction=myFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.containerView,new Select1()).commit();
}
返回false;
}
}
}
}

java

您已经有了片段实例

fragment.setArguments(bundle);
您正在该实例中设置参数,所以不要创建新参数,请使用它

fragmentTransaction.replace(R.id.containerView, fragment).commit();

您必须使用设置bundle的相同片段

用片段替换新的select1()

 FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        bundle.putString("Slocale1",SbtnsLocale.getText().toString());
        bundle.putString("Slocale2",SbtneLocale.getText().toString());
        bundle.putString("Sdate1",StxtsDate.getText().toString());
        bundle.putString("Sdate2",SStxtsDate.getText().toString());
        bundle.putString("Sseat",StxtSeat.getText().toString()); // use as per your need

        fragment.setArguments(bundle);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.replace(R.id.containerView, fragment).commit();
可能重复的