题
根据 文档, Display.setCurrent
不会的工作,如果目前显示的是一个警告。这是一个问题,因为我想到另一个警报时,用户选择的命令。没有人知道如何解决这使我们可以从一个到另一个警报?我使用CLDC1.0和实2.0.
额外信息
规范并使我们能够编辑一个警告,而它是在屏幕上但一些诺基亚手机没有处理得很好。所以我现在要去从预警到一个空白的画布上,然后回到警报。当然我不希望用户进行互动与以前画布上,因此看来,我被迫于创建一个新的空白画布上。作为一个旁注,这有微小的缺点的寻找更糟糕的手机上仍然有前面的屏幕当一个警示。
更大的问题是如何从过渡空白的画布,回到一个警告一旦画布上。测试摩托罗拉仿真器显示,showNotify是不是被叫回来后警报到前面的屏幕。我想我能创建下一个警觉的油漆的方法,但这似乎是一个丑陋的黑客。
解决方案 2
我找不到方法解决这个,所以我只是用的油漆黑客。
public class AlertPage extends Canvas{
MIDlet midlet;
Alert alert;
private AlertPage(MIDlet midlet){
this.midlet=midlet;
}
protected void paint(Graphics arg0){
//Yep, this is a hack, but showNotify doesn't seem to work well for Motorola
if(alert!=null){
Display d=Display.getDisplay(midlet);
d.setCurrent(alert);
alert=null;
}
}
public static void showAlert(MIDlet m, Alert a){
AlertPage page=new AlertPage(m);
Display d=Display.getDisplay(m);
page.alert=a;
d.setCurrent(page);
}
}
其他提示
好了,你的问题是,你 不能 设置它这样做:
Display.setCurrent(alert1, alert2);
和
Display.setCurrent(alert2);
也是 不 可能的,如果目前显示的是已经 alert1.
因此,如何把一个中显示项目是空白以及立即改变,下一个警告?假设目前显示的是 alert1, 像这样在你的 alert1's命令块:
Display.setCurrent(blankForm);
Display.setCurrent(alert2);
应该假设你是不使用默认的'驳回'的命令。所以基本上它从 alert1->(blankForm->alert2引).
不隶属于 StackOverflow