1 点击 -> 返回 // 不能返回 --> 关闭
1 Click -> Go back / / Can't go back --> close
有解决这个问题的好方法吗?
在我的 Webview 中,如果单击后退按钮,我可以返回。
如果我单击一次,我需要一种返回方法,如果我不能返回 (startdisplay/startside),它应该说 "Click once more to Exit the app" 祝酒。这可能吗?
public class MainActivity 扩展 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();
}
}
}
您可以使用临时全局 variable.I 尚未测试但它应该可以工作
boolean goback = false;
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
}else {
if(!goback) {
goback = true;
//show Toast here..
return;
}
super.onBackPressed();
}
}
您好,我建议您根据时间使用不同的方法。因为在用户看到有关退出警告的 toast 消息后,she/he 不应该退出应用程序。
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);
}
有解决这个问题的好方法吗?
在我的 Webview 中,如果单击后退按钮,我可以返回。 如果我单击一次,我需要一种返回方法,如果我不能返回 (startdisplay/startside),它应该说 "Click once more to Exit the app" 祝酒。这可能吗?
public class MainActivity 扩展 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();
}
}
}
您可以使用临时全局 variable.I 尚未测试但它应该可以工作
boolean goback = false;
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
}else {
if(!goback) {
goback = true;
//show Toast here..
return;
}
super.onBackPressed();
}
}
您好,我建议您根据时间使用不同的方法。因为在用户看到有关退出警告的 toast 消息后,she/he 不应该退出应用程序。
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);
}