0

I am new to fragments and have a lot of problems understanding and working with them. I will try to describe my problem step by step:

  • I start with a list
  • after selecting an item i start an activity with a dynamic url in a webview
  • If portrait, only the webview is showed, if landscape the list is presented next to it
  • In landscape when i select another item, it is showd in the webview (check the code)
  • Problem: When i turn back now to portrait the first selected item is showd instead of the last one.

How can i update the activity so it will keep the last opened url after orientation change?

if (fragment==null || ! fragment.isInLayout()) {

            Intent intent = new Intent(this.getActivity(), DetailViewActivity.class);
            intent.putExtra("link", urlforwebview);
            startActivity(intent);

        } else {

            DetailView detailFragment = 
                       (DetailView) 
                         getFragmentManager().findFragmentById(R.id.detailfragment);        
            detailFragment.changeWebviewURL(urlforwebview);
        } 

FIX:

Added this to my detailfragment:

@Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("currentUrl", url);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) {
            // Restore last state for checked position.
        url = savedInstanceState.getString("currentUrl", "");
        changeWebviewURL(url);
        }
    }
Switching Brains
  • 290
  • 4
  • 15

1 Answers1