坚持第一次尝试Blackberry App

时间:2012-03-08 15:02:07

标签: blackberry

尝试第一个Blackberry App。 它将显示日记数据(最终)。 我只是想让事情一点一点地发挥作用。 我无法让按钮在模拟器中工作,即我点击它们没有任何反应。 任何帮助赞赏。 代码如下(希望格式正确 - 如果没有,请先发帖子道歉。)

import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.SeparatorField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

/**
 * A class extending the MainScreen class.
 */
public class MyScreen extends MainScreen implements FieldChangeListener
{
/**
 * Creates a new MyScreen object
 */
ButtonField lastWeek;
ButtonField todayWeek;
ButtonField nextWeek;
LabelField Monday;
LabelField MondayData;
LabelField Tuesday;
LabelField TuesdayData;
LabelField Wednesday;
LabelField WednesdayData;
LabelField Thursday;
LabelField ThursdayData;
LabelField Friday;
LabelField FridayData;
LabelField Satday;
LabelField SaturdayData;
LabelField Sunday;
LabelField SundayData;
public MyScreen(){

    LabelField banner = new LabelField("Diary",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);   
    LabelField title = new LabelField("Week starting...",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField Monday = new LabelField("Monday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);     
    LabelField MondayData = new LabelField("MondayData",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);    
    LabelField Tuesday = new LabelField("Tuesday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); 
    LabelField TuesdayData = new LabelField("TuesdayData",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField Wednesday = new LabelField("Wednesday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField WednesdayData = new LabelField("WednesdayData",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField Thursday = new LabelField("Thursday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField ThursdayData = new LabelField("ThursdayData",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField Friday = new LabelField("Friday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField FridayData = new LabelField("FridayData",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField Saturday = new LabelField("Saturday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField SaturdayData = new LabelField("SaturdayData",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField Sunday = new LabelField("Sunday",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    LabelField SundayData = new LabelField("Sundaydata",
            LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);

    HorizontalFieldManager hfm = new HorizontalFieldManager(Field.FIELD_HCENTER);

    ButtonField lastWeek = new ButtonField("<<", ButtonField.CONSUME_CLICK);
    lastWeek.setChangeListener(this);
    ButtonField todayWeek = new ButtonField("Today", ButtonField.CONSUME_CLICK);
    todayWeek.setChangeListener(this);
    ButtonField nextWeek = new ButtonField(">>", ButtonField.CONSUME_CLICK);
    nextWeek.setChangeListener(this);

    hfm.add(lastWeek);hfm.add(todayWeek);hfm.add(nextWeek);
    hfm.setPadding(10, 0, 10, 0);
    VerticalFieldManager vfm = new VerticalFieldManager(Field.FIELD_VCENTER);
    vfm.add(Monday);
    vfm.add(MondayData);
    vfm.add(Tuesday);
    vfm.add(TuesdayData);
    vfm.add(Wednesday);
    vfm.add(WednesdayData);
    vfm.add(Thursday);
    vfm.add(ThursdayData);
    vfm.add(Friday);
    vfm.add(FridayData);
    vfm.add(Saturday);
    vfm.add(SaturdayData);
    vfm.add(Sunday);
    vfm.add(SundayData);






    add(vfm);
    add(new SeparatorField());
    setTitle(title);
    setBanner(banner);

    setStatus(hfm);

  }


public void fieldChanged(Field field, int context) {

    if (field == lastWeek) {
        lastTextFields();
    }
    else if (field == todayWeek) {
        todayTextFields();
    }
    else if (field == nextWeek) {
        nextTextFields();
    }
}
private void lastTextFields() {
    Monday.setText("Monday-old");
    MondayData.setText("MondayData-old");
}
public void todayTextFields() {
    //Monday.setText("Monday");
//  MondayData.setText("MondayData");
    Dialog.inform("Today pressed");
}
private void nextTextFields() {
    Monday.setText("Monday-new");
    MondayData.setText("MondayData-new");
}
}

1 个答案:

答案 0 :(得分:0)

由于您在没有触摸屏的 8520设备模拟器上运行应用程序,因此单击按钮将无处可寻。有几种选择:

使用以下方法之一导航到所需按钮:

  1. 使用键盘箭头键进行导航。按Enter键以“单击”它。
  2. 使用鼠标滚轮进行导航,然后左键单击以“单击”。
  3. 按F12打开“轨迹球模式”并使用鼠标导航。然后按Enter或在选择所需按钮时右键单击。
  4. 另请查看此Use the trackball和其他Simulating BlackBerry device interaction手册。

    或者,您可以使用JRE 6.0或更高版本编译应用程序,并选择使用支持触摸屏的设备模拟器(9800 Torch,9930 Bold等...)。


    修改

    您正在启动本地LabelFieldButtonField而不是类'成员变量。所有类成员变量都保持未初始化(例如等于 null )。您应该删除冗余的局部变量定义。

    以下列方式更新所有LabelFields和ButtonField:

      

    LabelField banner = new LabelField(“Diary”,LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);    ButtonField lastWeek = new ButtonField(“&lt;&lt;”,ButtonField.CONSUME_CLICK);