J'ai un problème avec le bouton de retour dans mon application Android. J'essaie de le faire revenir à travers les pages précédentes et s'il est incapable de sortir. Je choisis le code sur le site Web du développeur et rien ne fonctionne. J'apprécierais toute aide. Voici ma page d'activité:Android Retour Bouton Avec Webview
WebView webView;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView)findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new myWebView());
webView.loadUrl("http://google.com");
webView.setInitialScale(1);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event was the Back button and if there's history
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
// If it wasn't the Back key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.diabetes_meal_planner, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.action_settings:
//exits app
finish();
break;
default:
break;
}
return true;
}
private class myWebView extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(url.startsWith("mailto:"))
{
String[] email = url.split(":");
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{email[1]});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Send_Us_Your_Email");
Log.v("NOTICE", "Sending Email to" + email[1] + "with subject" + "Send Us Your Feedback");
startActivity(emailIntent);
}
view.loadUrl(url);
return true;
}
}
Essayez de vous assurer que vous capitalisez vos noms de classe :) – frogmanx
enlever la partie si dans 'shouldOverrideUrlLoading' et donner un essai – Raghunandan