我有一个可以创建并弹出DialogFragment的Fragment,但是当我点击后退按钮时,即使我显式调用setCancelable(false),它也会取消对话框; 我的DialogFragment有没有办法对后退按钮不敏感?
public class LoadingDialogFragment extends DialogFragment
{
String title;
String msg;
public LoadingDialogFragment()
{
this.title = "Loading...";
this.msg = "Please wait...";
}
public LoadingDialogFragment(String title, String msg)
{
this.title = title;
this.msg = msg;
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState)
{
final ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.setTitle(title);
dialog.setMessage(msg);
dialog.setIndeterminate(true);
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(false);
return dialog;
}
}
Run Code Online (Sandbox Code Playgroud)
我从AsyncTask创建DialogFragment:
private class GpsTask extends AsyncTask<String, Integer, Integer>
{
//ProgressDialog dialog;
@Override
protected void onPreExecute()
{
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
DialogFragment newFragment …Run Code Online (Sandbox Code Playgroud) android back-button fragment progressdialog android-asynctask
我正在展示非常敏感的数据.用户从我的服务器注销后,我不希望其他用户能够看到数据点击浏览器的"后退"按钮.
我怎样才能做到这一点?
当用户按下intent上的后退按钮时,应用程序应该退出.如何在按下后退按钮时确保应用程序退出?
有人可以分享经验/代码我们如何检测浏览器后退按钮点击(对于任何类型的浏览器)?
我们需要满足所有不支持HTML5的浏览器
在history.pushStateiOS上调用Safari 后,当使用浏览器后退按钮进行更改时,不再可以使用alert(),confirm()或prompt().
这是iOS错误吗?有没有已知的解决方法?
重现此行为的简单示例:
<html>
<body>
<ul>
<li>Step 1: <button onclick="alert(Math.random())">Confirm Alert is working</button></li>
<li>Step 2: <button onclick="history.pushState(null, null, '/debug/'+Math.random());">Change History</button></li>
<li>Step 3: use your browser back button, to go back</li>
<li>Step 4: <button onclick="alert(Math.random())">Alert is not working anymore</button></li>
</ul>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你可以在这里尝试一下:goo.gl/faFW6o.
我正在尝试使用jquery mobile和cordova编写RSS阅读器.我的RSS阅读器由3页组成(在同一HTML文档中:第1页,第2页,第3页).我试图覆盖(硬件)后退按钮行为,因此它将退出程序.为了检查我在项目设置中没有犯任何错误,我使用了PhoneGap示例项目并将其加载到Eclipse中.每个示例函数都有效,所以我将index.html和res文件夹移动到phonegap示例.在我的index.html中,我导入了以下脚本:
<script src="res/jquery-1.7.1.min.js"></script>
<script src="res/jquery.mobile-1.1.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="main.js"></script>
Run Code Online (Sandbox Code Playgroud)
和我的main.js文件看起来像这样:
document.addEventListener("backbutton", function(e){
if($.mobile.activePage.is('#homepage')){
e.preventDefault();
navigator.app.exitApp();
}
else {
navigator.app.backHistory()
}
}, false);
Run Code Online (Sandbox Code Playgroud)
您可以在第一个代码示例中检查我的脚本版本.关于如何让代码工作的任何想法,当我按下我的Xperia Arc上的后退按钮时,它会简单地退出应用程序?如果需要,我可以上传我的完整代码.
编辑:我已经测试了我的Android手机上的phonegap(cordova)哔声功能,它的工作方式,所以这没有什么与坏脚本实现.它必须是main.js文件中的内容.也许与jquerymobile后退按钮功能和phonegap后退按钮功能有一些兼容性问题.
我有以下问题:
我知道如何设置工具栏来显示后退按钮图标而不是汉堡按钮图标.
由此:

对此:
使用: getSupportActionBar().setDisplayHomeAsUpEnabled(true);
现在,我想做反向动作,我想从后退按钮图标转到汉堡图标:
到这里:
我怎样才能做到这一点?
更新:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
}
private void enableViews(boolean enable) {
if(enable) {
// Enables back button icon
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} else {
// TODO: Enables burger icon
}
}
Run Code Online (Sandbox Code Playgroud) android back-button android-actionbar navigation-drawer android-toolbar
在我的应用程序中,我希望退出应用程序时按下后退按钮,这是我的代码:
@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).setNegativeButton("No", null).show();
}
Run Code Online (Sandbox Code Playgroud)
它的工作正常,但是当我从应用程序退出时,它不会完全退出并显示带有我的应用程序徽标的空白页面,当我再次按下按钮从应用程序退出时,我该如何解决?
编辑:
我使用此代码而不是上面但我的应用程序完全退出但我希望它在后台运行并且不会完全退出,我该怎么做?
@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure?")
.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}).setNegativeButton("no", null).show();
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我想使用'Back'文本作为每个viewcontroller的后退按钮标题.我已经在stackoverflow上阅读了这么多帖子但什么也没得到.
我不想设置leftbarbuttonitem.
任何人都可以帮我完成这个简单的任务.
谢谢,
我正在编写一个应用程序,如果用户回击,它可能会重新发送相同的信息并弄乱数据的流和完整性.如何为有和没有javascript的用户禁用它?