java - fragment 添加-删除

标签 java android android-fragments

我想通过按钮添加和删除 fragment .. 以下是 MainActivity 的代码。

第二次单击该按钮时,收到错误消息:

java.lang.IllegalStateException: Fragment already added..

我的错误在哪里?

public class MainActivity extends AppCompatActivity {

private Button myBlackButton, myRedButton, myYellowButton;
private TopFragment topFragment;
private YellowFragment yellowFragment;
private RedFragment redFragment;
private boolean status_zwart = true;
private boolean status_geel = true;
private boolean status_rood = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    myBlackButton = (Button)findViewById(R.id.zwart_button);
    topFragment = new TopFragment();

    myBlackButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (status_zwart = true){
                getSupportFragmentManager()
                    .beginTransaction()
                    .add(R.id.fragment_container, topFragment)
                    .commit();
                status_zwart = false;
            }
            if (status_zwart = false) {
                getSupportFragmentManager()
                        .beginTransaction()
                        .remove(topFragment)
                        .commit();
                status_zwart = true;}
            }
    });

最佳答案

使用双等号进行 boolean 检查:

if (status_zwart == true){
    getSupportFragmentManager()
        .beginTransaction()
        .add(R.id.fragment_container, topFragment)
        .commit();
    status_zwart = false;
}
if (status_zwart == false) {
    getSupportFragmentManager()
        .beginTransaction()
        .remove(topFragment)
        .commit();
    status_zwart = true;}
}

关于java - fragment 添加-删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50875718/

相关文章:

java - 在 RecyclerView 中我想要 onclicklistener 操作

java - 在 Android 中每 24 小时自动实例化 Activity 中的一个函数

java - Retrofit - 接收 JSON 数组始终返回 NULL

java - 找不到功能 'default' 的元工厂;这通常意味着 axiom-impl.jar 不在类路径中

android - 在 Android 中提取视频帧

android - 由于 fragment 中的 textwacher,无法更改 edittext 的值

java - 按照与 Eclipse 中的实现接口(interface)相同的顺序对方法进行排序

android - 使用GSON对Android进行json封装

android - 带有 windowSoftInputMode adjustPan 的 ListView 中的 EditText

android - android中静态内容下部分布局的选项卡