2010-11-17 36 views
0

我正在开发一个应用程序,将枚举值传递给主屏幕上的按钮。我在主屏幕上有四个按钮,点击后会出现按钮特定的屏幕。黑莓的枚举值

为此,我必须检查枚举值 - 因为java-me不支持enum,所以我将它们作为最终的静态int常量。在主屏幕上,我使用了FieldChangeListener来实现按钮。具有枚举值的按钮的实现位于另一个类中。如何使用相关按钮检查值?

回答

0

Field.setCookie(Object)和Field.getCookie()应该做的。

使用java.lang.Integer将您的图元转换为对象。

编辑

场变化监听得到了现场。在该字段上调用getCookie(),然后您可以计算出来,因为当您设置按钮时,您会用适当的对象调用setCookie()。

+0

米歇尔您好我用setcookie()函数和的getCookie()为u说,但它不是working.I忘了提,关于issue.If一些信息,我点击了fieldChangeListener任何按钮类我需要只推动一个屏幕,其中执行四个按钮完成。在绘制方法中,我实现了绘制位图来显示。我怎样才能确定哪个按钮被按下。 – Koushik 2010-11-22 21:17:40

+0

是的迈克尔我使用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

0

另一种方法来解决你的问题可能是使用.setChangeListener()方法ButtonField字段。每个按钮都有一个独特的监听器。另外,在黑莓JRE中还有enum构造。你必须使用int常量。

代码:在他的著作“有效的Java编程语言指南”

 
button.setChangeListener(new FieldChangeListener() { 
     public void fieldChanged(Field field, int context) { 
      // push screen 1... 
     } 
}}); 
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; 
    } 
}