Несколько последовательных предупреждений в Java ME

StackOverflow https://stackoverflow.com/questions/2542874

  •  23-09-2019
  •  | 
  •  

Вопрос

Согласно документация, Display.setCurrent не работает, если текущий отображаемый объект является предупреждением.Это проблема, поскольку я хотел бы отображать еще одно предупреждение, когда пользователь выбирает команду.Кто-нибудь знает, как обойти это, чтобы мы могли переходить от одного оповещения к другому?Я использую CLDC 1.0 и MIDP 2.0.

Дополнительная информация

Спецификация позволяет нам редактировать оповещение, пока оно отображается на экране, но некоторые телефоны Nokia вообще с этим не справляются.Итак, теперь я пытаюсь перейти от оповещения к чистому холсту, а затем снова к оповещению.Конечно, я не хочу, чтобы пользователь взаимодействовал с предыдущим холстом, поэтому кажется, что я вынужден создать новый пустой холст.Кстати, у этого есть небольшой недостаток: он хуже выглядит на телефонах, на которых при отображении предупреждения все еще отображается предыдущий экран.

Более серьезная проблема заключается в том, как перейти от пустого холста обратно к оповещению после загрузки холста.Тестирование на эмуляторе Motorola показало, что showNotify не вызывается после возврата из оповещения на предыдущий экран.Думаю, я мог бы создать следующее оповещение в методе рисования, но это кажется уродливым хаком.

Это было полезно?

Решение 2

Я не смог найти способа обойти эту проблему, поэтому просто использовал трюк с краской.

public class AlertPage extends Canvas{
    MIDlet midlet;
    Alert alert;

    private AlertPage(MIDlet midlet){
        this.midlet=midlet;
    }

    protected void paint(Graphics arg0){
        //Yep, this is a hack, but showNotify doesn't seem to work well for Motorola
        if(alert!=null){
            Display d=Display.getDisplay(midlet);
            d.setCurrent(alert);
            alert=null;
        }
    }

    public static void showAlert(MIDlet m, Alert a){
        AlertPage page=new AlertPage(m);
        Display d=Display.getDisplay(m);
        page.alert=a;
        d.setCurrent(page);
    }
}

Другие советы

ОК, твоя проблема в том, что ты не мочь настройте это так:

Display.setCurrent(alert1, alert2);

и

Display.setCurrent(alert2);

это также нет возможно, если текущий отображаемый объект уже предупреждение1.

Так как насчет размещения промежуточного отображаемого элемента, который является пустым и сразу же переходит к следующему предупреждению?Предполагая, что текущий отображаемый объект предупреждение1, вот так в твоем предупреждение1командный блок:

Display.setCurrent(blankForm);
Display.setCurrent(alert2);

Это должно работать, если вы не используете команду «Отпустить» по умолчанию.Итак, в основном это происходит от предупреждение1->(пустая форма->предупреждение2).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top