Здравствуйте, у меня есть странная вещь, у меня есть список элементов, и я хочу, чтобы при нажатии на любой элемент открывалось веб-представление, которое выглядит следующим образом:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:theme="@android:style/Theme.Dialog">
<WebView android:id="@+id/BrowserView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY" />
вот код, который я вызываю для WebView
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
setContentView(R.layout.external_view);
// load url or html
RssItem listItem = (RssItem) listView.getItemAtPosition(position);
webView = (WebView) findViewById(R.id.BrowserView);
// set browser settings
webView.setWebViewClient(new ExternalWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
webView.setInitialScale(1);
try {
webView.loadUrl(listItem.getExternalUrl());
} catch (Exception ex) {
Log.d("WEBVIEW", ex.getMessage());
}
}
});
Вот класс "ExternalWebViewClient"
public class ExternalWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
view.clearHistory();
}
}
Теперь вопрос:
Как мне закрыть его и остаться в том же упражнении после нажатия кнопки «назад», вот мой код обработки кнопки возврата:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webView.canGoBack() == true) {
webView.goBack();
} else {
//what should i do here?????????????????
return true;
}
}
}
return false;
}