Android 方向更改时未添加碎片

Android 方向更改时未添加碎片,android,android-fragments,android-orientation,illegalstateexception,screen-rotation,Android,Android Fragments,Android Orientation,Illegalstateexception,Screen Rotation,我使用的是这样一个片段: public class MyFragment extends Fragment implements MyListener { private String name, id; public MyFragment(){ } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState

我使用的是这样一个片段:

public class MyFragment extends Fragment implements MyListener {

    private String name, id;

    public MyFragment(){
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (savedInstanceState != null) {
            Log.d(TAG, "Restoring saved state");
            // Restore id & name
            ....
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.my_fragment, container, false);  
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        // do stuff with AsyncHttpClient that will call "onResponseReady" after some time
    }

    @Override
    public void onResponseReady() {

        if (!isAdded()) {
            Log.d(TAG, "Fragment not added");
            return;
        }
        Log.d(TAG, "Fragment added");
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

        outState.putString(KEY_ID, this.id);
        outState.putString(KEY_NAME, this.name);
    }
}
当我启动应用程序时,我会在LogCat中收到添加片段的消息,但如果我旋转设备,则会得到未添加的片段,因此,如果我尝试访问某些视图,例如my_Fragment.xml中定义的文本视图,我会得到一个非法状态异常:片段MyFragment未附加到活动


为什么在方向改变后片段没有连接到活动?

发现了问题:当设备旋转时,整个活动就会重新创建。因此调用Activity onCreate,在这个方法中,我将用另一个片段替换当前片段。这就是为什么没有附加MyFragment。您是如何解决此问题的?我不太清楚解决方案,但我认为我修改了活动的onCreate方法,以便仅在没有savedInstanceState的情况下进行转换