我正在开发一个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) 如何在关闭应用程序之前显示MessageDialog来实现IWindowCloseHandler?
这是我的代码:
编辑
public class LifeCycle {
@PostContextCreate
public void postContextCreate()
{
// TODO start up code here
System.out.println("open");
}
@ProcessAdditions
void processAdditions(MApplication app, EModelService modelService)
{
WindowCloseHandler closeHandler=new WindowCloseHandler();
MWindow window = (MWindow)modelService.find("uploadcenter.source.trimmedwindow.0", app);
window.getContext().set(IWindowCloseHandler.class, closeHandler);
}
private static class WindowCloseHandler implements IWindowCloseHandler{
@Override
public boolean close(MWindow window) {
// TODO Auto-generated method stub
Shell shell = new Shell();
if (MessageDialog.openConfirm(shell, "Confirmation",
"Do you want to exit?")) {
return true;
}
return false;
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个举办活动ListBoxItem.因此,当我持有一个项目时,它会在函数中向右输入,但它会在它被触发两次时出现.
private async void OutersAndContactInTel_Holding(object sender, HoldingRoutedEventArgs e)
{
try
{
FrameworkElement element = (FrameworkElement)e.OriginalSource;
if (element.DataContext != null && element.DataContext is Contact)
{
Contact selectedContact = (ImOutContact)element.DataContext;
if (selectedContact.IsOuter)
{
MessageDialog msgToAddContact = new MessageDialog("Voulez-vous vraiment suivre " + selectedContact.Pseudo + " ?");
msgToAddContact.Commands.Add(new UICommand("Oui", (UICommandInvokedHandler) =>
{
AddContactProcess(selectedContact);
}));
msgToAddContact.Commands.Add(new UICommand("Non"));
this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => msgToAddContact.ShowAsync());
}
else
{
MessageDialog msgToInviteContact = new MessageDialog("Envoyez une invitation à l'utilisation de l'application par sms à " + selectedContact.NomPrenom + …Run Code Online (Sandbox Code Playgroud) 如何在Windows Phone 8.1中以编程方式关闭"消息"对话框.我使用showAsync()创建了对话框.如果这不可能,这是创建具有以下属性的自定义消息对话框的最佳方法:
1. It can show test and hold buttons for user interaction.
2. It can be dismissed programmatically
3. Should block the view as a Normal MessageDialog do
Run Code Online (Sandbox Code Playgroud) 我在使用 FMX.Platform.IFMXDialogServiceAsync 时遇到问题
这是我的程序:
procedure TFormMain.btnLogoutClick(Sender: TObject);
var
ASyncService : IFMXDialogServiceASync;
begin
ASyncService.MessageDialogAsync('Do you want to logout?', TMsgDlgType.mtInformation,
[System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo],
TMsgDlgBtn.mbNo,
0,
procedure(const AResult: TModalResult)
begin
case AResult of
mrYes:
begin
Close;
end;
mrNo:
begin
// pressed no
end;
end;
end
);
end;
Run Code Online (Sandbox Code Playgroud)
以下是弹出窗口的错误:
Access violation at address
A29FC4F2, accessing address
00000000.
Run Code Online (Sandbox Code Playgroud)
直接尝试进入 Android 设备并在此过程触发时显示错误。查看 Embarcadero 文档,但他们没有为此提供示例。
有人写了一些我在上面使用的例子 http://c2design5sh.blogspot.co.id/2016/05/rad-studio-dx-101-berlin-dialog-api.html
有没有人能告诉我如何在 Android 中使用新的 MessageDialog 方式?,因为我发现 MessageDlg 已被弃用。
今天我已经开始构建我的第一个Android应用程序,我习惯使用Java,但有些东西我不知道怎么做我的Android应用程序.这是一个简单的计算器,如果用户输入的数字无效,我正试图显示一个消息对话框.
这是我的代码:
public void calculate(View v) {
EditText theNumber = (EditText) findViewById(R.id.number);
int num;
try {
num = Integer.parseInt(theNumber.getText().toString());
} catch (NumberFormatException e) {
//missing code here
}
}
Run Code Online (Sandbox Code Playgroud)
在Java SE中,我只是这样做:
public void calculate(View v) {
EditText theNumber = (EditText) findViewById(R.id.number);
int num;
try {
num = Integer.parseInt(theNumber.getText().toString());
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog("Invalid input");
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在android中做到这一点?
android ×2
asynchronous ×1
back-button ×1
c# ×1
delphi ×1
e4 ×1
eclipse ×1
eventhandler ×1
java ×1
overriding ×1
rcp ×1
ui-thread ×1
windows ×1