У меня есть действие, которое загружает веб-просмотр:
@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, но если я просто попытаюсь сохранить его в наборе, onCreate все равно будет возвращать нулевой пакет каждый раз, не знаю почему.
Так что я думаю, что лучший вариант этопросто сохранить веб-вид как-то самостоятельно.Каков наилучший способ сделать это или альтернативно, почему в мире я никогда не получил бы пакет, который не является нулевым, даже если я сохраню пакет?Просто для справки вот моя панель инструментов, которая включена в нижней части каждого макета:
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);
}
});
}
}