これが私のコードです。向きを除いてすべてがうまく機能します。電話を回転させるたびにリロードされ、ホームページにリロードされます。それは苦痛です。誰でも問題がどこにあるのか教えてください。
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.Toast;
public class hpro extends Activity {
/** Called when the activity is first created. */
WebView webview;
//zoom
private static final FrameLayout.LayoutParams ZOOM_PARAMS =
new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.BOTTOM);
//finish zoom
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//progress bar
getWindow().requestFeature(Window.FEATURE_PROGRESS);
// frame starts
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webview.getSettings();
webview.getSettings().setPluginsEnabled(true);
webview.setWebViewClient(new HelloWebViewClient() {}); // MARK
webSettings.setJavaScriptEnabled(true);
//zoom
FrameLayout mContentView = (FrameLayout) getWindow().
getDecorView().findViewById(android.R.id.content);
final View zoom = this.webview.getZoomControls();
mContentView.addView(zoom, ZOOM_PARAMS);
zoom.setVisibility(View.GONE);
//end zoom
//loading bar
final Activity activity = this;
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 100);
}
});
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
});
webview.loadUrl("http://mypage.com/");
}
//orientation
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
}
//block browser
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}
// back key
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
//start submenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home:
webview.loadUrl("http://mypage.com");
return true;
case R.id.exit:
// TODO
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
return true;
case R.id.reg:
webview.loadUrl("http://mypage.com/subpage");
return true;
case R.id.help:
webview.loadUrl("http://mypage.com/help");
return true;
}
return false;
}
}