Java 使用多个片段的最佳方式是什么?
我有两个片段,分别是Java 使用多个片段的最佳方式是什么?,java,android,android-layout,android-fragments,Java,Android,Android Layout,Android Fragments,我有两个片段,分别是SignInFragment和SignUpFragment。第一个main活动使用此代码调用SignInFragment //MainActivity if (savedInstanceState == null) { signInFragment = new SignInFragment(); signUpFragment = new SignUpFragment(); FragmentTransaction fragmentTransaction
SignInFragment
和SignUpFragment
。第一个main活动
使用此代码调用SignInFragment
//MainActivity
if (savedInstanceState == null) {
signInFragment = new SignInFragment();
signUpFragment = new SignUpFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.frame_holder,signInFragment);
fragmentTransaction.commit();
}
单击SignInFragment
中的注册按钮后,如何调用SignUpFragment
。我有一个按钮的参考:
//SignInFragment
Button buttonSignUp = view.findViewById(R.id.button_sign_up);
重写它们各自的onClick()方法以响应按钮上的单击事件,并以以下方式将代码写入替换片段:
public void onClick(View v) {
switch(v.getId()){
case R.id.button_sign_up:
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame_holder, signInFragment);
fragmentTransaction.commit();
}
}
注意:第二次(或任何连续时间)添加任何片段时,您需要替换该片段,而不是添加该片段,因为添加只会将另一片段覆盖在第一个片段上。有关更多信息,请参阅。重写它们各自的onClick()方法,以响应按钮上的单击事件,并以以下方式将代码写入替换片段:
public void onClick(View v) {
switch(v.getId()){
case R.id.button_sign_up:
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame_holder, signInFragment);
fragmentTransaction.commit();
}
}
注意:第二次(或任何连续时间)添加任何片段时,您需要替换该片段,而不是添加该片段,因为添加只会将另一片段覆盖在第一个片段上。有关更多信息,请参阅。您需要先覆盖注册按钮的
onClick
然后把这个代码放进去
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame_holder, signInFragment);
fragmentTransaction.commit();
如前所述,您必须更换它,而不是将它添加到
框架支架中您需要先覆盖一次点击注册按钮
然后把这个代码放进去
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame_holder, signInFragment);
fragmentTransaction.commit();
如前所述,您必须更换它,而不是将它添加到框架支架中,我建议您对它非常熟悉。你应该先查看一下有关的文档。谷歌搜索也会为你提供大量信息。我建议你要非常熟悉。你应该先查看一下有关的文档。谷歌搜索也会为你提供大量信息。