Android在方向更改后保留选定的片段状态/加载的URL,

时间:2014-03-27 19:24:07

标签: android

我是碎片的新手,在理解和使用它们时遇到很多问题。我将尝试逐步描述我的问题:

  • 我从列表开始
  • 选择项目后,我在webview中使用动态网址开始活动
  • 如果是肖像,则仅显示webview,如果列表旁边显示了横向
  • 在横向中,当我选择另一个项目时,它会显示在webview中(检查代码)
  • 问题:当我现在回到肖像时,会显示第一个选定的项目,而不是最后一个。

如何更新活动,以便在更改方向后保留最后打开的网址?

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:

将此添加到我的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);
        }
    }
相关问题