我正在打开应用程序,它崩溃了
答案 0 :(得分:0)
您可以将 FragmentTransaction 写入按钮的 onClick 中。 请遵循以下代码,
public class MainActivity extends AppCompatActivity {
Button frag1, frag2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frag1 = (Button) findViewById(R.id.frag1btn);
frag2 = (Button) findViewById(R.id.frag2btn);
frag1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.replace(R.id.fragment_container, new Fragment1());
trans.commit();
}
});
frag2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.replace(R.id.fragment_container, new Fragment2());
trans.commit();
}
});
}
}
答案 1 :(得分:0)
您可以用FragmentTransaction替换片段。
你在这里。
建立界面。
public interface FragmentChangeListener
{
public void replaceFragment(Fragment fragment);
}
通过此界面实现您的Fragment保持活动。
public class HomeScreen extends FragmentActivity implements
FragmentChangeListener {
@Override
public void replaceFragment(Fragment fragment) {
FragmentManager fragmentManager = getSupportFragmentManager();;
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(mContainerId, fragment, fragment.toString());
fragmentTransaction.addToBackStack(fragment.toString());
fragmentTransaction.commit();
}
}
从这样的片段中调用此方法。
//在您的片段中。
public void showOtherFragment()
{
Fragment fr=new NewDisplayingFragment();
FragmentChangeListener fc=(FragmentChangeListener)getActivity();
fc.replaceFragment(fr);
}
希望这会起作用!