سؤال

أنا أبحث عن حل بسيط نعم/لا حوار في جافا لي midlet.أود أن استخدام مثل هذا ولكن بطرق أخرى ليست على ما يرام.

if (YesNoDialog.ask("Are you sure?") == true) {
  // yes was chosen
} else {
  // no was chosen
}
هل كانت مفيدة؟

المحلول

كنت بحاجة إلى تنبيه:

تنبيه الشاشة التي يظهر البيانات إلى المستخدم وينتظر لفترة معينة من الوقت قبل الانتقال إلى المرحلة التالية للعرض.تنبيه يمكن أن تحتوي على سلسلة نصية و صورة.الاستخدام المقصود من التنبيه إلى إعلام المستخدم عن الأخطاء وغيرها من ظروف استثنائية.

مع 2 الأوامر ("نعم"/"لا" في هذه الحالة):

إذا كان هناك اثنين أو أكثر من الأوامر الموجودة على التنبيه, هو تلقائيا تحولت إلى التنبيه مشروط ، قيمة المهلة دائما إلى الأبد.تنبيه يبقى على الشاشة حتى أمر استدعاء.

هذه هي مدمجة في دروس الدعم في MIDP 1.0 أو أعلى.أيضا مقتطف الشفرة لن تنجح أبدا.مثل API سوف تحتاج إلى كتلة موضوع الدعوة في انتظار للمستخدم لتحديد الإجابة.وهذا ينطبق بالضبط في الاتجاه المعاكس من واجهة المستخدم نموذج التفاعل من MIDP ، التي يوجد مقرها في الاسترجاعات الوفد.تحتاج إلى توفير الفئة الخاصة بك ، وتنفيذ CommandListener, و إعداد رمز غير متزامن.

هنا هو (لم تختبر!) على سبيل المثال فئة على أساس تنبيه:

public class MyPrompter implements CommandListener {

    private Alert yesNoAlert;

    private Command softKey1;
    private Command softKey2;

    private boolean status;

    public MyPrompter() {
        yesNoAlert = new Alert("Attention");
        yesNoAlert.setString("Are you sure?");
        softKey1 = new Command("No", Command.BACK, 1);
        softKey2 = new Command("Yes", Command.OK, 1);
        yesNoAlert.addCommand(softKey1);
        yesNoAlert.addCommand(softKey2);
        yesNoAlert.setCommandListener(this);
        status = false;
    }

    public Displayable getDisplayable() {
        return yesNoAlert;
    }

    public boolean getStatus() {
        return status;
    }

    public void commandAction(Command c, Displayable d) {
        status = c.getCommandType() == Command.OK;
        // maybe do other stuff here. remember this is asynchronous
    }

};

استخدامه (مرة أخرى ، لم تختبر على قمة رأسي):

MyPrompter prompt = new MyPrompter();
Display.getDisplay(YOUR_MIDLET_INSTANCE).setCurrent(prompt.getDisplayable());

هذا الكود سيجعل موجه الحالي عرض نموذج في التطبيق الخاص بك, ولكن لن كتلة الخيط الخاص بك مثل في المثال قمت بنشرها.تحتاج إلى متابعة تشغيل والانتظار commandAction الاحتجاج.

نصائح أخرى

أنا لا أميل لها مبرمج بلغة جافا لي ، لكنني وجدت في ذلك إشارة اختياري حزم رسومات متقدمة واجهة المستخدم API, وهو يستخدم مثل Java SE API لإنشاء هذه الحوارات مع JOptionPane الدرجة

الباحث JOptionPane.showConfirmDialog(جافا.awt.مكون parentComponent, java.لانغ.Object >رسالة جافا.لانغ.عنوان السلسلة ، الباحث optionType)

العودة يمكن أن تكون JOptionPane.YES_OPTION, JOptionPane.NO_OPTION, JOptionPane.CANCEL_OPTION ...

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