为什么Java ME应用程序中的警报对话框在真实手机(N82)上无法正确显示(顶部有白色条纹)的任何想法,它在模拟器上运行良好。所以我想这不是编码的问题。见截图:
-> N82
-> 模拟器
任何想法为什么?
警报和其他 Gui 组件取决于设备的实施。这意味着这些 GUI 对象是“本机”GUI。您可以通过在 Canvas 上创建自己的 GUI(如 J4ME、J2MEPolish 和 LWUIT)来解决此问题。
你所描述的很可能是N82中的一个错误。
想想看 - lcdui Alert API不允许开发人员做任何与“像素渲染”工件相关的事情,比如屏幕截图中显示的。只有应用程序开发人员可以在 Alert 中影响的内容是标题文本和警报、超时值等 - 从您的模拟器屏幕截图来看,您的代码看起来是正确的(尽管不可能 100%确定这一点,因为您没有显示您使用的代码片段)。
在像 Alert 这样的Screen对象中提供的高级 API 的全部意义在于渲染应该由实现来完成。正因为如此,每当您在使用的高级屏幕上注意到呈现工件时,最合理的解释是 MIDP 在特定设备上的实现方式中的错误。