1
I have an application with webview and I wish that when I click the back button of the mobile phone it goes back to previous page, I do not know how I do, someone helps me?
Below follows my code.
package brasil500.brasil500;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
//Faz a verificacao da conexao com a internet
//Fim da Verifica��o de conexao com a internet
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// If a notification message is tapped, any data accompanying the notification
// message is available in the intent extras. In this sample the launcher
// intent is fired when the notification is tapped, so any accompanying data would
// be handled here. If you want a different intent fired, set the click_action
// field of the notification message to the desired intent. The launcher intent
// is used when no click_action is specified.
//
// Handle possible data accompanying notification message.
// [START handle_data_extras]
if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
Object value = getIntent().getExtras().get(key);
Log.d(TAG, "Key: " + key + " Value: " + value);
}
}
// [END handle_data_extras]
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView wv = (WebView) findViewById(R.id.webView);
wv.setWebViewClient(new WebViewClient());
final WebSettings ws= wv.getSettings();
ws.setJavaScriptEnabled(true);
ws.setSupportZoom(false);
//news implementation
ws.setSaveFormData(true);
wv.loadUrl("https://terra.com.br");
wv.getSettings().setUseWideViewPort(true);
wv.getSettings().setLoadWithOverviewMode(true);
wv.setWebChromeClient(new WebChromeClient());
//Barra de Progress StackOverflow
/* ProgressDialog progress = new ProgressDialog();
progress.setMessage("Carregando");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress.setIndeterminate(true);
progress.show();*/
//Barra de Progresso / Carregando
final ProgressBar Pbar;
Pbar = (ProgressBar) findViewById(R.id.progressBar);
wv.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
if (progress < 100 && Pbar.getVisibility() == ProgressBar.GONE) {
Pbar.setVisibility(ProgressBar.VISIBLE);
}
Pbar.setProgress(progress);
if (progress == 100) {
Pbar.setVisibility(ProgressBar.GONE);
}
}
});
//Fim da Barra de Progresso / Carregando
//Verifica se a internet está ativa no aparelho
/* ConnectivityManager cManager = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE);
NetworkInfo ninfo = cManager.getActiveNetworkInfo();
if(ninfo!=null && ninfo.isConnected()){
Toast.makeText(this,"Conectado na internet", Toast.LENGTH_LONG).show();
}else{
//Caso não tenha internet, Recarrega a SplashScreen
Intent i = new Intent(MainActivity.this, splash_screen.class);
startActivity(i);
//Caso não tenha internet, Recarrega a SplashScreen
Toast.makeText(this,"Sua Internet Precisa estar Ativa. Estamos Tentando conectar...", Toast.LENGTH_LONG).show();
}
*/
/* Caso a pagina da web não funciona*/
wv.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Intent i = new Intent(MainActivity.this, error_webview.class);
startActivity(i);
}
});
/* Fim:: Caso a pagina da web não funciona*/
}
//Fecha a Aplicacao Quando pressionar o botao voltar
@Override
public void onBackPressed(){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
//Fecha a Aplicacao Quando pressionar o botao voltar
//Volta o Webview quando clicar em volta
//Volta o Webview quando clicar em volta
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Thanks acklay, but when I open the application all right. the problem is now when I click back, it accuses error.
– Felipe Edwards Vanstocher
@Felipeedwardsvanstocher what error?
– viana
The app closes and appears: "The App ****Stopped"
– Felipe Edwards Vanstocher
@Felipeedwardsvanstocher But this problem here already solved?! If yes, I suggest you open another question for the possible error.
– viana
I believe that yes friend, anyway I will follow your recommendations, I am half Noob in stackoverflow rs. Thank you very beast.
– Felipe Edwards Vanstocher
@Felipeedwardsvanstocher precise, so there! = D
– viana
@Felipeedwardsvanstocher if you are going to ask another question for this possible problem, try not only to say that "The Application **** Has Stopped"... this is very broad, there are many factors that cause this. Ask the question the error that appears in your logcat. Good luck!
– viana