Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android将Webview保存到存储器中,以便在稍后重新加载活动时调用_Android_Android Activity_Webview - Fatal编程技术网

Android将Webview保存到存储器中,以便在稍后重新加载活动时调用

Android将Webview保存到存储器中,以便在稍后重新加载活动时调用,android,android-activity,webview,Android,Android Activity,Webview,我有一个加载网络视图的活动: @Override protected void onCreate(Bundle savedInstanceState) { webview = (WebView) findViewById(R.id.dashboard_webview); webview.getSettings().setJavaScriptEnabled(true); webview.setWebViewClient(new HelloWebViewClient());

我有一个加载网络视图的活动:

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    webview = (WebView) findViewById(R.id.dashboard_webview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new HelloWebViewClient());

    if (savedInstanceState != null) 
    {
        webview.restorePicture(getIntent().getExtras(), f);
        webview.restoreState(getIntent().getExtras());
    }
    else
    {
        webview.loadUrl("http://www.yahoo.com");
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) 
{
    super.onSaveInstanceState(outState);
    WebBackForwardList lList = webview.saveState(outState);
    boolean savedPic = webview.savePicture(outState, f);
我在屏幕底部还有一个“工具栏”,可以启动另一个活动,基本上是做同样的事情,加载一个URL。当我想切换回第一个活动时,问题就出现了。当我离开第一个活动时,会调用onSaveInstanceState,但是如果我只是尝试保存到bundle onCreate,每次仍然会返回一个null bundle,不知道为什么

因此,我认为最好的选择是自己保存webview。做这件事的最好方法是什么?或者,为什么即使我保存了一个包,我也永远不会得到一个非空的包?这里是我的工具栏,位于每个布局的底部,仅供参考:

package com.tseng.example;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Toolbar extends LinearLayout 
{

    public Toolbar(final Context context) 
    {
        super(context);
    }
    public Toolbar(final Context con, AttributeSet attrs) 
    {
        super(con, attrs);
        setGravity(Gravity.BOTTOM);
        // setMinimumHeight(50);

        setBackgroundColor(getResources().getColor(android.R.color.transparent));

        LayoutInflater inflater = (LayoutInflater)       con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.navigation, this);

        TypedArray a = con.obtainStyledAttributes(attrs, R.styleable.Toolbar);
        String option = a.getString(R.styleable.Toolbar_tab_id);

        String resourceId = "com.tseng.example:id/" + option;
        int optionId = getResources().getIdentifier(resourceId, null, null);
        TextView currentOption = (TextView) findViewById(optionId);
         currentOption.setBackgroundColor(getResources().getColor(android.R.color.white));
        currentOption.setTextColor(getResources().getColor(android.R.color.black));
        currentOption.requestFocus(optionId);
        currentOption.setFocusable(false);
        currentOption.setClickable(false);

        TextView tab1 = (TextView) findViewById(R.id.tab1);
        tab1.setOnClickListener(new OnClickListener() 
            {
            public void onClick(View v) 
                    {
                Intent intent = new Intent(con, ShowDashboard.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                //con.startActivity(intent);
                Activity lAct = ((Activity)con);
                //((Activity)con).finish();
                ((Activity)con).startActivity(intent);

            }
        });

        TextView tab2 = (TextView) findViewById(R.id.tab2);
        tab2.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(con, ShowLog.class);
                //con.startActivity(intent);
                intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                Activity lAct = ((Activity)con);
                //((Activity)con).finish();
                ((Activity)con).startActivity(intent);
            }
        });

        TextView tab3 = (TextView) findViewById(R.id.tab3);
        tab3.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(con, ShowCalls.class);
                con.startActivity(intent);
            }
        });

        TextView tab4 = (TextView) findViewById(R.id.tab4);
        tab4.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(con, ShowTimer.class);
                con.startActivity(intent);
            }
        });

    }


}

我怀疑问题可能出在您的onCreate方法中。添加对super.onCreate()的调用,看看这是否解决了问题

如果这不起作用,试着改用,看看这是否能给你带来更好的结果