删除后添加片段时"fragment already active"错误



我用下面的代码添加了两个按钮来添加和删除片段。

包com.example.home.appfrag;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.Button;

公共类MainActivity扩展FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (findViewById(R.id.frame) != null){
        if (savedInstanceState != null) {
            return;
        }
        Button bf1 = (Button)findViewById(R.id.bf1);
        Button bf3 = (Button)findViewById(R.id.bf3);
        final Second secondobj = new Second();

        bf1.setOnClickListener(new Button.OnClickListener() {
                public void onClick(View v) {
                    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                    transaction.add(R.id.frame, secondobj,"hai").commit();
                }
            });
         bf3.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                transaction.remove(getSupportFragmentManager().findFragmentByTag("hai"));
                transaction.addToBackStack("hai").commit();
            }
        });
    }
}

}

添加带有标签的片段。您可以使用片段类名作为标记。

Second secondFragment = new Second();
    getFragmentManager().beginTransaction()
        .replace(R.id.frame, secondFragment,"UNIQUE_FRAGMENT_TAG")
        .addToBackStack("UNIQUE_FRAGMENT_TAG").commit(); 

使用标签删除片段。

 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.remove(fragmentManager.findFragmentByTag("UNIQUE_FRAGMENT_TAG")).commit();

相关内容

最新更新