سؤال

وفقا الوثائق, Display.setCurrent لا يعمل إذا الحالية للعرض هو تنبيه.هذه هي المشكلة كما أود أن يطفو على السطح آخر تنبيه عندما يقوم المستخدم بتحديد الأوامر.لا أحد يعرف كيفية العمل حول هذا حتى نتمكن من التنبيه إلى آخر ؟ أنا باستخدام CLDC 1.0 MIDP 2.0.

معلومات إضافية

المواصفات لا تسمح لنا أن تحرير تنبيه بينما هو على الشاشة ، ولكن بعض هواتف نوكيا لا التعامل معها بشكل جيد على الإطلاق.لذلك أنا الآن في محاولة للذهاب من التنبيه إلى قماش بيضاء ، ثم العودة إلى تنبيه.بالطبع أنا لا أريد للمستخدم بالتفاعل مع السابق قماش ، لذلك يبدو أنني مضطر إلى خلق جديد قماش بيضاء.كما sidenote ، هذا وقد طفيف العيب من يبحث أسوأ على الهواتف التي لا تزال الشاشة السابقة عندما تنبيه هو مبين.

المشكلة الأكبر هو كيفية الانتقال من قماش بيضاء العودة إلى تنبيه مرة واحدة قماش يتم تحميلها.اختبار على موتورولا المحاكي كشفت أن 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);

هو أيضا لا ممكن إذا الحالية للعرض بالفعل alert1.

فكيف وضع وسيط للعرض عنصر فارغ و ذلك على الفور التغييرات القادمة تنبيه ؟ على افتراض الحالية للعرض هو alert1, مثل هذا في alert1'ق القيادة كتلة:

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

التي يجب أن تعمل على افتراض عدم استخدام الافتراضي 'رفض' الأمر.وذلك أساسا يذهب من alert1->(blankForm->alert2).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top