NotesFragment hintfrag = (NotesFragment) getFragmentManager().findFragmentByTag(Def.TAG_NOTES); //注意事項画面の重複表示チェック if (hintfrag == null && !isFinishing()) { hintfrag = NotesFragment.newInstance(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.activity_container, hintfrag, Def.TAG_NOTES); ft.addToBackStack(null); ft.commit(); }以代码格式
时间: 2023-06-01 20:04:00 浏览: 92
|| !hintfrag.isVisible()) {
//注意事項画面が表示されていない場合、新しく作成して表示する
hintfrag = new NotesFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, hintfrag, Def.TAG_NOTES);
transaction.addToBackStack(null);
transaction.commit();
} else {
//注意事項画面が表示されている場合、何もしない
}
相关问题
讲解这段代码: private FragmentManager manager; private FragmentTransaction transaction; //private Fragment fragment_title; //通过manager和transaction;来实现对fragment的动态操作 public RadioButton radio1,radio2,radio3,radio4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//将app自带的标题去掉 setContentView(R.layout.vip_main); //设置初始内容Fragment为我的页面 manager=getFragmentManager();//获取管理器 transaction=manager.beginTransaction(); transaction.add(R.id.content_layout,new Vipmain4());//添加 transaction.commit();//提交 //初始化控件 radio1=(RadioButton)findViewById(R.id.radioButton); radio2=(RadioButton)findViewById(R.id.radioButton2); radio3=(RadioButton)findViewById(R.id.radioButton3); radio4=(RadioButton)findViewById(R.id.radioButton4); RadioButtonListener listener=new RadioButtonListener(); //给控件绑定监听器 radio1.setOnClickListener(listener); radio2.setOnClickListener(listener); radio3.setOnClickListener(listener); radio4.setOnClickListener(listener); } //radioButton上绑定的监听器类 class RadioButtonListener implements View.OnClickListener{ @Override //当点击不同radioButton的时候,需要切换不同的Fragment public void onClick(View v) { transaction=manager.beginTransaction(); switch (v.getId()){ case R.id.radioButton: transaction.replace(R.id.content_layout,new Vipmain1()); break; case R.id.radioButton2: transaction.replace(R.id.content_layout,new Vipmain2()); break; case R.id.radioButton3: transaction.replace(R.id.content_layout,new Vipmain3()); break; case R.id.radioButton4: transaction.replace(R.id.content_layout,new Vipmain4()); break; } transaction.commit(); } }
这段代码实现了一个选项卡的功能,可以通过点击四个 RadioButton 来切换不同的 Fragment。具体的实现步骤如下:
1. 在 onCreate 方法中,先获取到 FragmentManager 和 FragmentTransaction 对象,用来管理 Fragment 的动态添加、删除和替换等操作。
2. 调用 transaction.add 方法,将初始的 Fragment 添加到指定的布局容器中。
3. 接着初始化四个 RadioButton 控件,并为它们绑定同一个监听器 RadioButtonListener。
4. 在 RadioButtonListener 中,通过判断点击的 RadioButton 的 id,来动态替换布局容器中的 Fragment。其中,transaction.replace 方法用来替换原有的 Fragment,然后调用 transaction.commit 方法提交事务,使得 Fragment 的更新生效。
总体来说,这段代码实现了一个简单的选项卡效果,可以通过点击不同的 RadioButton 来切换不同的 Fragment。如果需要增加选项卡的数量,只需要添加相应的 RadioButton 和对应的 Fragment,然后在 RadioButtonListener 中增加相应的判断即可。
beginTransaction = getFragmentManager().beginTransaction();不支持了咋办
如果你使用的是 AndroidX 库,可以改用 `getChildFragmentManager()` 来获取 FragmentManager 对象,然后调用 `beginTransaction()` 方法开启一个事务。例如:
```
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
```
如果你使用的是旧版的 support 库,可以尝试调用 `getSupportFragmentManager()` 方法获取 FragmentManager 对象,然后开启事务。例如:
```
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
```
不过建议你将支持库升级到最新的 AndroidX 版本,以获得更好的支持和体验。
阅读全文