0

I've got a ViewGroup which will fire onRestoreInstanceState() if inflated by my activity setContentView(). If I try to inflate it with getLayoutInflater().inflate(), then it won't.

I've tried to set an ID for it as said in Restoring view hierarchy from saved state does not restore views added programatically. I also have an ID in the layout file, and getID() returns the same every activity recreation, yet it won't restore nor save the instance state.

How can I overcome this?

(Edit) Code I'm using at the moment:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    setContentView(R.layout.main); //this code will work as intended
}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    View content = getLayoutInflater().inflate(R.layout.main, null);
    setContentView(content); //this code will also work
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    setContentView(R.layout.another_layout);
    View content = getLayoutInflater().inflate(R.layout.main, null); //now this view won't fire the method
}

The point is that I don't want to use that view as my layout for the activity. I need to inflate it some other way.

4

0 回答 0