konto usunięte
Temat: Problem z WebView i obracaniem ekranu
Witam serdecznie,Mam taką aplikację:
package bf.menu;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MenuActivity extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (savedInstanceState != null)
((WebView)findViewById(R.id.webview)).restoreState(savedInstanceState);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true); // włączenie JS
mWebView.getSettings().setSupportZoom(false); // blokada ZOOMu
mWebView.setWebViewClient(new MenuClient());
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
mWebView.loadUrl("http://www.onet.pl");
}
else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
mWebView.loadUrl("http://wp.pl");
}
}
private class MenuClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
protected void onSaveInstanceState(Bundle outState) {
mWebView.saveState(outState);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_HOME || keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_CALL || keyCode == KeyEvent.KEYCODE_POWER || keyCode == KeyEvent.KEYCODE_CAMERA || keyCode == KeyEvent.KEYCODE_CLEAR || keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_POWER)) {
//mWebView.goBack();
return false;
}
return super.onKeyDown(keyCode, event);
}
public void onUpdate(Bundle savedInstanceState) {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
mWebView.loadUrl("http://www.onet.pl");
}
else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
mWebView.loadUrl("http://wp.pl");
}
}
}
Aplikacja powinna wyświetlić w zależności od aktualnego obrazu (poziomy/pionowy) odpowiednią stronę. Generalnie to działa,
ale w momencie gdy uruchamiam program poziomo - wyświetla wp, pionowo - onet... Ale to w momencie uruchomienia aplikacji.
Jeśli jednak w trakcie jej działania obrócę ekran, to nie zmienia z onetu na wp i odwrotnie... Wie ktoś może co robię nie tak?
Z góry dziękuje za pomoc,
Northwest