Застрял с первой попытки на Blackberry App - PullRequest
0 голосов
/ 08 марта 2012

пытается первое приложение Blackberry. Он будет отображать данные дневника (в конце концов). Я просто пытаюсь заставить вещи работать понемногу. Я не могу заставить кнопки работать в симуляторе, т.е. я нажимаю на них, и ничего не происходит. Любая помощь приветствуется. Код приведен ниже (надеюсь, в хорошем формате - первый пост, поэтому извиняюсь, если нет).

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 голосов
/ 09 марта 2012

Поскольку вы запускаете приложение на устройстве 8520 , в котором нет сенсорного экрана, нажатие на кнопки ни к чему вас не приведет.Доступно несколько вариантов:

Перейдите к нужной кнопке одним из следующих способов:

  1. Для навигации используйте клавиши со стрелками на клавиатуре.Нажмите Enter, чтобы «щелкнуть» по нему.
  2. Используйте колесо прокрутки мыши для навигации, а затем щелкните левой кнопкой мыши, чтобы «щелкнуть».
  3. Нажмите F12, чтобы включить «режим трекбола», и используйте мышьнавигации.Затем либо нажмите Enter, либо щелкните правой кнопкой мыши, когда будет выбрана нужная кнопка.

Также отметьте это Используйте трекбол и другие Имитация взаимодействия с устройством BlackBerry руководства.

Кроме того, вы можете скомпилировать приложение с JRE 6.0 или выше и выбрать имитатор устройства, поддерживающий сенсорный экран (9800 Torch, 9930 Bold и т. Д.).


EDIT

Вы инициируете локальные LabelField s и ButtonField s вместо переменной-члена класса.Все переменные-члены класса остались неинициализированными (например, равными null ).Вы должны удалить избыточные определения локальных переменных.

Обновите все ваши LabelFields и ButtonFields следующим образом:

LabelField banner = new LabelField ("Diary", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); ButtonField lastWeek = new ButtonField ("<<", ButtonField.CONSUME_CLICK); </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...