Моя основная активность запускает новую активность (WebView). Это просто страница. Но когда я нажимаю кнопку «Назад», появляется белый экран?

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, когда я пытаюсь его отладить)!

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


person TIMEX    schedule 15.02.2010    source источник


Ответы (1)


Я починил это. Вы должны сделать это:

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