我有一个网页,可以向多个用户发送电子邮件(在线分发列表).单击提交按钮并发送电子邮件后,将显示状态页面,其中列出已发送的电子邮件数,错误和其他信息.如果用户单击后退按钮,则会重新发送电子邮件.我怎么能阻止这个?
注:浏览器就提示用户"重新提交"或实际发送电子邮件之前"重新发送"数据页面,但不会从单击它,然后不知道为什么邮件的两个副本共出动停止我的用户.
环境:
我有一个活动,它在打开后立即打开一个对话框:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPath = new File(getIntent().getExtras().getString("START_PATH"));
FTYPE = getIntent().getExtras().getString("FILTER");
showDialog(DIALOG_LOAD_FILE);
}
Run Code Online (Sandbox Code Playgroud)
我试图做到这一点,当用户单击后退按钮(仍在对话框中)时,整个活动都将退出。我有以下几点:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent resultIntent = new Intent();
resultIntent.putExtra("FILE_PATH", mPath.toString());
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果 Dialog 不再存在,这很有效,但如果 Dialog 仍然处于活动状态,则不会被调用。想法?
当我按下iPhone应用程序中的后退按钮时,有什么方法可以捕获事件吗?现在我正在使用一个名为Back的图像按钮并为其定义动作.
我的客户端需要指向前一个屏幕的默认后退按钮,因此基于点击事件我应该能够指向特定屏幕,以便显示该屏幕的标题.
总之,我需要后退按钮来显示我需要的标题,是否可能?
提前致谢.
当使用facebook android sdk打开Dialogs时,一切正常.
但是,如果用户单击"返回"按钮,则对话框确实会关闭,但不会调用对话框侦听器(或任何其他方法)的onCancel方法.
我搜索了这个问题,并在github上找到了来自fb android sdk的pull请求:当Dialog被取消时,在DialogListener上调用Cancel.
我拿了一部分并修改了一下来得到这个:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
mWebView.stopLoading();
dismiss();
mListener.onCancel();
return true;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我把它添加到FbDialog类中,事实上这似乎可以解决问题.
我想知道为什么这不是sdk的一部分?拉动请求超过一年,最后一个响应是大约11个月.为什么不将它添加到sdk源代码?
由于这个解决方案正在运行它并不紧急,但我不喜欢修改facebook sdk的来源,因为它可能会在以后出现问题(如果/何时更新).
有任何想法吗?
我正在开发一个WP 8.1 XAML应用程序.第一页是登录页面,第二页是例如历史页面.会有更多页面,但目前无关紧要.当我按下登录页面上的登录按钮时,会出现第二个(历史记录)页面.如果我按下历史记录页面上的(物理)后退按钮,它将返回登录页面.但我想禁用此功能.取而代之的是,当我按下后退按钮时会出现MessageDialog,如果我在几秒钟内再次按下(例如3秒),应用程序将终止.我试图找到我的问题的答案,但它不能正常工作.我在登录页面上尝试了这个:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
if (Frame.CurrentSourcePageType.FullName == "MyAppName.History")
Application.Current.Exit();
}
Run Code Online (Sandbox Code Playgroud)
当我按下第二个(历史)页面上的后退按钮时,我的应用程序终止.但是,如果我尝试按下后退按钮,它将导航回登录页面.在此之后,当我再次登录并按下后退按钮时,计数器将为2,应用程序将退出.这是我尝试的代码:
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
//MessageDialog msgbox = new MessageDialog("This is a popup message");
//await msgbox.ShowAsync();
//e.Handled = true;
backPressCount++;
if (backPressCount==2 && Frame.CurrentSourcePageType.FullName == "MyAppName.History")
Application.Current.Exit();
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释2个MessageDialog行,则会显示该消息,但我将导航回登录页面.我试图取消注释e.Handled = true;,但它没有帮助.我想我应该禁用历史记录页面上的后退按钮或完全覆盖它.有人对我的问题有所了解吗?
编辑: 我重新考虑后退按钮的行为,因为我不想使用自动收报机来测量2按下之间的时间.而不是这个,我只想要一个带有问题的弹出消息,例如"你真的想退出吗?" 和2个按钮(是和否).它适用于以下代码:
private async void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
e.Handled = true;
MessageDialog dlg = new …Run Code Online (Sandbox Code Playgroud) 我正在为Delphi XE7中的Android平板电脑编写应用程序.我想关掉主页和后退键,这样就没有人可以离开应用程序了.我找到了很多答案,但都没有提到Delphi.
我怎样才能在Delphi中实现这一目标?我应该使用哪些物品?我需要包括哪些单位?
我有以下布局文件。如何在下面的布局中的 Toolbar 的 Imageview 子项的顶部(或覆盖在,如 z-index 上)添加后退按钮(箭头)?
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<Toolbar
android:layout_width="fill_parent"
android:layout_height="600dp"
android:id="@+id/toolbar"
android:background="#313B45"
android:weightSum="1"
android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/headerimage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:layout_gravity="left|top"
android:layout_weight="1" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="New Text"
android:id="@+id/textView"
android:scaleType="fitXY"
android:layout_gravity="left|top"
android:layout_weight="1" />
</LinearLayout>
</Toolbar>
Run Code Online (Sandbox Code Playgroud)
我正在尝试覆盖后退按钮,因为它在我按下时关闭了我的应用程序,我有不同的片段:
我有我的主要活动:它管理我的片段(因为有一个导航抽屉)。
我发现了很多关于此的帖子,但我无法实现它们:
以片段 B 为例:
@Override
public void onBackPressed(){
FragmentManager fm = getSupportFragmentManager();
Fragment f = fm.findFragmentById(R.id.fragmentb); // get the fragment that is currently loaded in placeholder
Object tag = f.getTag();
// do handling with help of tag here
// call super method
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
它说无法解析 onBackPressed() 和 getSupportFragmentManager(),我想我没有正确使用该方法,那怎么办?
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import …Run Code Online (Sandbox Code Playgroud) 在我的Ionic 2应用程序中,硬件后退按钮(android,windows)应该像默认情况下那样工作,但有一个例外:如果没有任何东西可以返回,他不应该退出应用程序.
我知道我可以这样做:
platform.ready().then(() => {
platform.registerBackButtonAction(() => {
// Default action with the exception here
},);
});
Run Code Online (Sandbox Code Playgroud)
但是我现在必须如何做到这一点,让它作为默认工作,但有一个例外?在该函数的离子1文档中,存在不同情况的优先级.但我认为离子2改变了!?因为在离子2文档中没有这些优先级.我试图将优先级设置为99,因为那时一切都应该作为默认值.但是现在侧面菜单不能再关闭了,这就是为什么我认为离子1的优先级已经改变了,因为在离子1文档中,sidemenu的优先级是150,这就是为什么我的函数应该被忽略的原因.有人可以帮我吗?
back-button ×10
android ×4
dialog ×2
asp.net ×1
default ×1
delphi ×1
delphi-xe7 ×1
exit ×1
facebook ×1
fragment ×1
ionic2 ×1
iphone ×1
jsf ×1
navigation ×1
objective-c ×1
overriding ×1
postback ×1
xcode ×1