我正在开发一个应用程序,将枚举值传递给主屏幕上的按钮。我在主屏幕上有四个按钮,点击后会出现按钮特定的屏幕。黑莓的枚举值
为此,我必须检查枚举值 - 因为java-me不支持enum,所以我将它们作为最终的静态int常量。在主屏幕上,我使用了FieldChangeListener来实现按钮。具有枚举值的按钮的实现位于另一个类中。如何使用相关按钮检查值?
我正在开发一个应用程序,将枚举值传递给主屏幕上的按钮。我在主屏幕上有四个按钮,点击后会出现按钮特定的屏幕。黑莓的枚举值
为此,我必须检查枚举值 - 因为java-me不支持enum,所以我将它们作为最终的静态int常量。在主屏幕上,我使用了FieldChangeListener来实现按钮。具有枚举值的按钮的实现位于另一个类中。如何使用相关按钮检查值?
Field.setCookie(Object)和Field.getCookie()应该做的。
使用java.lang.Integer将您的图元转换为对象。
编辑
场变化监听得到了现场。在该字段上调用getCookie(),然后您可以计算出来,因为当您设置按钮时,您会用适当的对象调用setCookie()。
另一种方法来解决你的问题可能是使用.setChangeListener()方法在ButtonField字段。每个按钮都有一个独特的监听器。另外,在黑莓JRE中还有enum构造。你必须使用int常量。
代码:在他的著作“有效的Java编程语言指南”
button.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { // push screen 1... } }});
您可以模拟使用“类型安全枚举模式”中的JavaME枚举提出的约书亚·布洛克。
例子:
public class ButtonEnum
{
public static final ButtonEnum TEST = new ButtonEnum("test");
public static final ButtonEnum HOME = new ButtonEnum("home");
public static final ButtonEnum EXIT = new ButtonEnum("exit");
public static final ButtonEnum VIEW2 = new ButtonEnum("view");
private final String name;
private ButtonEnum(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
米歇尔您好我用setcookie()函数和的getCookie()为u说,但它不是working.I忘了提,关于issue.If一些信息,我点击了fieldChangeListener任何按钮类我需要只推动一个屏幕,其中执行四个按钮完成。在绘制方法中,我实现了绘制位图来显示。我怎样才能确定哪个按钮被按下。 – Koushik 2010-11-22 21:17:40
是的迈克尔我使用setCookie()和getCookie()的字段,但无法弄清楚.i = new Integer(ContentScreen.STAGE_1); invesBtn.setCookie(i); j = new Integer(ContentScreen.STAGE_2); createBtn.setCookie(j);这里STAGE_1 = 0,STAGE_2 = 1在ContentScreen类中。在ContentScreen类中,我实现了按钮的代码,如if(currentState == STAGE_1)我调用一个方法,第二个按钮也在构造函数中。但不能获取它。 – Koushik 2010-11-23 17:39:48