【问题标题】:Weather app: J2me constructor天气应用:J2me 构造函数
【发布时间】:2012-07-01 23:31:36
【问题描述】:

我正在使用的天气应用程序有问题。构造函数应该创建一个列表,但是当应用程序运行时,它只是显示一个空白屏幕。

ERROR:
';' expected

no suitable constructor found for List(javax.microedition.lcdui.List)
    constructor javax.microedition.lcdui.List.List(java.lang.String,int,java.lang.String[],javax.microedition.lcdui.Image[]) is not applicable
      (actual and formal argument lists differ in length)
    constructor javax.microedition.lcdui.List.List(java.lang.String,int) is not applicable
      (actual and formal argument lists differ in length)

//带构造函数的类

public class WeatherMIDlet extends BaseMIDlet implements CommandListener {

private List list3;

private List getWeatherLocationView(List list3) {

        if (weatherConditionSearch == null) {
            weatherConditionSearch = new WeatherConditionSearch(this, list3);
        }
        return weatherConditionSearch; //list should dislay here!
    }

//我要创建本地引用列表的类

public class WeatherConditionSearch extends List implements CommandListener {

    private Command okCmd, backCmd;
    private TextField locationTfld;
    private BaseMIDlet midlet;
        private List list;

    public WeatherConditionSearch(BaseMIDlet midlet, List list3) //super class is List
{
        super(list3);//error is at this line
        this.midlet = midlet;
        lists();
        addCommand(okCmd);
        addCommand(backCmd);
        setCommandListener(this);
    }

    private void lists() {
            okCmd = new Command("Get", Command.OK, 0);
            backCmd = new Command("Back", Command.BACK, 1);
                if (list == null) {                                 
            list = new List("Cities", Choice.IMPLICIT);                                    
            list.append("Kampala", null);
            list.append("Entebbe", null);
            list.append("Mubende", null);
            list.setCommandListener(this);
            list.setSelectedFlags(new boolean[]{false, false, false});                                  
        }

【问题讨论】:

  • What 错误在那一行?这对城市列表的创建有何影响?此列表显示在哪里?
  • 好的,您的编辑有点帮助。也许这对 JME 开发人员来说更有意义,但是:WeatherConditionSearch 的超类是什么,为什么要将 List 实例传递给它的构造函数?
  • (希望你能在这里发表评论——这样会更容易追踪)
  • 您在调用super(list3) 时尝试调用List 构造函数,但javax.microedition.lcdui.List.List 没有接受List 的构造函数(可能是另一个javax.microedition.lcdui.List.List,在这个案例)。见java.sun.com/javame/reference/apis/jsr118/javax/microedition/…。你知道你为什么在你的代码中调用super吗?
  • 哦,伊格内修斯。 JavaDocs 应该是您开发 Java 应用程序时的第一个,不,您的 zeroth 站点。总是从那里开始。

标签: java java-me midp lcdui


【解决方案1】:

WeatherConditionSearch 的超类是 List。

当您调用 super(list3) 时,您尝试调用 List 构造函数,但 javax.microedition.lcdui.List.List 没有接受 List 的构造函数,请参阅 API documentation

根据您的描述,您应该调用 List(String title, int listType, String[] stringElements, Image[] imageElements) 构造函数,将城市名称列表传递给它。

JavaDocs 应该是您开发 Java 应用程序时的第一个,不,是您的第零站。总是从那里开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2021-10-11
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多