我的代码实际上与BlackBerry教程中给出的代码完全相同,在Eclipse中存在语法错误。我确定有一些小但我只是没有看到,但我的同事也找不到它。任何想法将不胜感激。谢谢!
代码:
pushScreen(new ABCScreen());
错误:
无法进行静态引用 非静态方法pushScreen(屏幕) 来自UiApplication类型
这是完整的来源:
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
public class AwesomeBBCalculator extends UiApplication {
public AwesomeBBCalculator() {
AwesomeBBCalculator app = new AwesomeBBCalculator();
app.enterEventDispatcher();
}
public static void main(String[] args) {
pushScreen(new ABCScreen()); // ERROR LINE
}
}
final class ABCScreen extends MainScreen {
public ABCScreen() {
super();
// add title
LabelField title = new LabelField("Awesome BlackBerry Calculator",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
}
public boolean onClose() {
Dialog.alert("Thanks for using the Awesome BlackBerry Calculator!\nGoodbye.");
System.exit(0);
return true;
}
}
答案 0 :(得分:3)
只能在UiApplication的实例中调用pushScreen方法。您正尝试从静态main方法调用它。这不起作用。这样做......
public void foo()
{
pushScreen(this);
}
public static void main(String[] args)
{
(new ABCScreen()).foo();
}
答案 1 :(得分:0)
public void class1() { pushScreen(本); }
public static void main(String [] args) { (new NewScreen())。class1(); }
答案 2 :(得分:0)
尝试为ABCScreen类创建一个对象,然后使用它,或者您也可以尝试这样做:
UiApplication.getUiApplication()。pushScreen(new ABCScreen());