【问题标题】:Blackberry API / MenuItems黑莓 API / 菜单项
【发布时间】:2011-06-18 19:32:24
【问题描述】:

我只是在学习黑莓 API,试图按照黑莓开发网站上的教程进行操作,我有点困惑。在界面教程中,他们给出了制作菜单项的以下说明......

private MenuItem _changeCapitol = new MenuItem("Change Capitol", 110, 10) 
{ 
    public void run() 
    { 
        if (displayed == 0) 
            _canadaCapitol = _input.getText(); 
        else if (displayed == 1) 
            _ukCapitol = _input.getText(); 
        else if (displayed == 2) 
            _usCapitol = _input.getText(); 
    } 
}; 

这一切都很好,现在有效。问题是用于创建 MenuItem 的方法已被弃用。所有教程似乎都是针对 4.0 的。我想学习以正确的方式做到这一点,所以我去了 6.0 API 参考。我试图将其转换为当前方法,但我无法完全正确。这是我最近的一次......

private MenuItem _changecapitol = new MenuItem(new StringProvider("Change Capitol"), 110, 10);
changecapitol.setCommand(new Command(CapitolChange()));
class CapitolChange extends CommandHandler
{
    public void execute(ReadOnlyCommandMetadata metadata, Object context)
    {
        if (displayed == 0) 
            _canadaCapitol = _input.getText(); 
        else if (displayed == 1) 
            _ukCapitol = _input.getText(); 
        else if (displayed == 2) 
            _usCapitol = _input.getText();
    }

}

似乎构造函数的括号内应该有一些东西,但我无法想象那可能是什么。如果我正确理解了引用,那么功能就在 CommandHandler 内部,所以我认为我的那部分是正确的。现在的问题是 Eclipse 在 CapitolChange 构造函数之前的行上抛出了一个错误。

changecapitol.setCommand(new Command(CapitolChange()));

我实际上在这条线上遇到了多个错误。一个是错误的构造错误,另一个声称在“setCommand”之后我需要一个“=”。这在 API 中不存在,而且在语法上似乎是错误的。我正在调用一个方法而不是分配一个值。正确的?不?我在整个事情上完全错了吗?

【问题讨论】:

    标签: java eclipse blackberry menuitem


    【解决方案1】:

    您使用了错误的变量,您使用“_changecapitol”创建了 MenuItem,并将其与此 changecapitol 一起使用。更正错字并检查错误。

    【讨论】:

    • 很好地抓住了错字,但它根本没有改变错误。我仍然遇到两个错误:令牌上的语法错误,错误的构造和令牌“setCommand”上的语法错误,=此令牌之后的预期
    【解决方案2】:

    我认为编译错误是由于分配命令的位置不正确:

    changecapitol.setCommand(new Command(CapitolChange()));
    

    因为它被放置在 MenuItem 成员声明之后的类声明部分的某个位置。 请尝试在其他地方分配命令,也许在屏幕构造函数中。

    【讨论】:

    • 展示位置以官方 API 参考为准。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多