Моя основная деятельность запускает новую активность (WebView). Это просто страница. Но когда я нажимаю кнопку "Назад" ... появляется белый экран? - PullRequest
0 голосов
/ 15 февраля 2010
public class Profile extends Activity{
    WebView prof_webv;  
    private String selected_username;
    private static final String INDEX = "http://14.143.227.140";

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);
    prof_webv = (WebView) findViewById(R.id.mainwebview);
    prof_webv.getSettings().setJavaScriptEnabled(true);
    prof_webv.getSettings().setSupportZoom(false);
    prof_webv.loadUrl(INDEX);

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) ) {
        finish();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
}

Это моя новая активность для WebView. Когда пользователь щелкает обратно, я просто хочу закрыть это действие и вернуться к предыдущему. Обратите внимание, я поставил "onKeyDown" -> Готово.

Однако, это не работает. Вместо этого я нажимаю «назад», появляется пустой белый экран ... (он даже не попадает в оператор onKeyDown при попытке его отладки)!

Когда я нажму "назад" во второй раз , он вернется к моей предыдущей активности.

1 Ответ

0 голосов
/ 15 февраля 2010

Я исправил это. Ты должен сделать это:

private class ProfileWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView prof_webv, String url) {    
            prof_webv.loadUrl(url);
            return true;
        }
    }
...