2016-04-06 6 views
0

Gibt es eine gute Möglichkeit, dieses Problem zu beheben?1 Klicken Sie auf -> Zurück// Kann nicht zurück -> schließen

In meinem Webview kann ich zurückgehen, wenn ich auf den Backbutton klicke. Ich brauche einen Weg zurück zu gehen, wenn ich einmal klicke, und wenn ich nicht zurückgehen kann (startdisplay/startside), sollte es mit einem Toast sagen "Klicken Sie noch einmal, um die App zu beenden". Ist das möglich?

public class MainActivity erweitert AppCompatActivity {

private ImageButton Ilias_link; 
private ImageButton Lsf_link; 
private WebView mWebView; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    Ilias_link = (ImageButton) findViewById(R.id.ilias_link); 
    mWebView = new WebView(this); 
    Ilias_link.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      mWebView.getSettings().setJavaScriptEnabled(true); 
      mWebView.loadUrl("https://elearns02.fh-biberach.de/ilias3/login.php?target=&soap_pw=&ext_uid=&cookies=nocookies&client_id=HSBC&lang=de"); 
      mWebView.setWebViewClient(new WebViewClient()); 
      setContentView(mWebView); 

     } 
    }); 

    Lsf_link = (ImageButton) findViewById(R.id.lsf_link); 
    mWebView = new WebView(this); 
    Lsf_link.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      mWebView.getSettings().setJavaScriptEnabled(true); 
      mWebView.loadUrl("https://lsf.fh-biberach.de/qisserver/rds?state=user&type=0"); 
      mWebView.setWebViewClient(new WebViewClient()); 
      setContentView(mWebView); 
     } 
    }); 
} 



@Override 
    public void onBackPressed() { 
     if (mWebView.canGoBack()) { 
      mWebView.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
} 

}

Antwort

0

Hallo Ich arbeite vorschlagen Sie eine andere Methode basierend auf Zeit. Weil, nachdem Benutzer Toast-Nachricht diese Warnung über den Ausgang sehen, sollte er/sie die App nicht verlassen wollen.

boolean doubleBack = false; 
@Override 
public void onBackPressed() { 
    if (mWebView.canGoBack()) { 
     mWebView.goBack(); 
     return ; 
    } 

    if (doubleBack) { 
     super.onBackPressed(); 
     return; 
    } 

    doubleBack = true; 
    Toast.makeText(this, "Click once more to Exit the app", Toast.LENGTH_SHORT).show(); 

    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      doubleBack = false;      
     } 
    }, 2000); 
} 
+0

thx Emin Ayar, Sie haben mir geholfen! –

+0

Froh, das zu hören, sind Sie willkommen :) –

0

Sie eine temporäre globale variable.I haben können es nicht getestet, aber es sollte

boolean goback = false; 
@Override 
public void onBackPressed() { 
    if (mWebView.canGoBack()) { 
     mWebView.goBack(); 
    }else { 
     if(!goback) { 
      goback = true; 
      //show Toast here.. 
      return; 
     } 
     super.onBackPressed(); 
    } 
}