Android 从framelayout添加和删除具有相同按钮的片段

Android 从framelayout添加和删除具有相同按钮的片段,android,xml,Android,Xml,我是第一次使用碎片的android新手。我正在创建一个应用程序,希望在框架布局上添加碎片。我能够做到这一点,但现在我想要的是删除我通过相同的按钮单击添加的相同碎片,我尝试过,但无法做到。这是我的密码 public void onClick(View v) { android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); if(v.getId() == R.id.cli

我是第一次使用碎片的android新手。我正在创建一个应用程序,希望在框架布局上添加碎片。我能够做到这一点,但现在我想要的是删除我通过相同的按钮单击添加的相同碎片,我尝试过,但无法做到。这是我的密码

 public void onClick(View v) {

    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
    if(v.getId() == R.id.clickme){
        if(getSupportFragmentManager().findFragmentById(R.layout.fragment_one) != null){
          //  getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.layout.fragment_one)).commit();
            Fragment fragment = new FragmenOne();
            fragmentManager.beginTransaction().remove(fragment).commit();

    }else{
            Fragment fragment = new FragmenOne();
         //   android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();

            fragmentManager.beginTransaction()
                    .replace(R.id.my_frame, fragment)
                    .commit();
        }
    }
}

你需要这样做

Fragment f = fragmentManager.findFragmentById(R.id.my_frame);
        if(f instanceof FragmenOne) {
            FragmenOne oneFragment = (FragmenOne) f;
            FragmentTransaction trans = manager.beginTransaction();
            trans.remove(oneFragment);
            trans.commit();
            fragmentManager.popBackStack();
        }else{
            Fragment fragment = new FragmenOne();
            fragmentManager.beginTransaction()
            .replace(R.id.my_frame, fragment)
            .commit();
        }

使用布尔标志来满足您的需求。当您添加片段时,请将其设置为true。