• 0
نمرالعدوان

ارجوا المساعدة في معاجة احداث list في مكتبة LWUIT

سؤال

اخوتي المشرفين والاعضاء في المنتدى

السلام عليكم ورحمة الله وبركاته

كنت قد قمت بكتابة كود في lcdui لل list وعرفت كيف استطيع تفعيل محتوياتها للدخول الى اشياء اخرى مثلاً ادخل الى فورم

ولكن عندما كتبت كود في LWUIT لم استطع تفعيل محتويات ال list كما اريد

الكود التالي يستطيع الدخول على اول فورم انا اخصصها فقط ولا يستطيع الدخول على الفورم الاخرى

ارجوا التعديل على الكود وشرح اين خطأي

وجزاكم الله خير


import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;

import javax.microedition.lcdui.Image.*;
import javax.microedition.midlet.MIDlet;

public class DemoDialog extends MIDlet implements ActionListener
{





public Form f1,f2,f3;
private List l;
private Button b,b1;
int x;

public void startApp()
{

Display.init(this);


f2=new Form("2");
f3=new Form("3");

f1=new Form("1");
b=new Button("back");
b1=new Button("back");



String[] items = { "Red", "Blue", "Green", "Yellow" };
l=new List(items);








f1.addComponent(l);
f1.getStyle().setBgColor(0xffffff);
f3.addComponent(b);
f2.addComponent(b1);

l.addActionListener(this);
l.getStyle().setBgColor(0xffffff);



x=l.getSelectedIndex();
f1.show();
}

public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
//act on the command
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==l)

{
switch(x)
{
case 0:

{ f3.show();

break;}
case 1:
{ f3.show();
break;}
}

}
else
if(ae.getSource()==b||ae.getSource()==b1)

f1.show();






}


}



0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

اخوتي المشرفين والاعضاء في المنتدى

السلام عليكم ورحمة الله وبركاته

كنت قد قمت بكتابة كود في lcdui لل list وعرفت كيف استطيع تفعيل محتوياتها للدخول الى اشياء اخرى مثلاً ادخل الى فورم

ولكن عندما كتبت كود في LWUIT لم استطع تفعيل محتويات ال list كما اريد

الكود التالي يستطيع الدخول على اول فورم انا اخصصها فقط ولا يستطيع الدخول على الفورم الاخرى

ارجوا التعديل على الكود وشرح اين خطأي

وجزاكم الله خير

المشكله لديك فى import

import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;

//import javax.microedition.lcdui.Display;
//import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image.*;
//import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;

لاحظ ان هناك import قد تم عمل كومنت عليها

وهيا ما تسببت فى المشكله

لانك فى هذا الـ import

import com.sun.lwuit.*;

قد قومت باستدعاء كل الفئات داخل هذه الpackage

ومن ضمنها Display و Form وList

الذى يوجد مثلهم فى المكتبه الاساسيه للموبيل

//import javax.microedition.lcdui.Display;
//import javax.microedition.lcdui.Form;
//import javax.microedition.lcdui.List;

فانت كدا مستدعى هذه العناصر من مكتبتين مختلفتين

وهو يقوم بالتعامل على اخر import او بمعنى اصح الـ import الصريح الذى يكون كاملا

مثل هذا

import javax.microedition.lcdui.Form;

وليس كهذا

import javax.microedition.lcdui.*;

فبالتالى لا توجد الداله مثلا show فى الـ Form العاديه لكن توجد فى ال Form الخاصه بالـ LWUIT

اما بالنسبه للازار

فانك لم تحدد من هو المستمع الخاص بهم

b.addActionListener(this);
b1.addActionListener(this);

نصيحه قم بتسميه المتغيرات بأسماء تعبر عنهم

وليس بحروف وارقام

فانت الوحيد الذى ستفهم الكود

وان تركته لمده مثلا اسبوع هتلاقى نفسك مش فاهم منه حاجه

دى نصيحه علشان المشاريع الكبيره و علشان لو فيه خطأ تكتشفه بسرعه

هذا ما حدث

جرب واتمنى ان يكوون ذلك كل شىء بالتوفيق

تم تعديل بواسطه Mahmoud Kelany
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير اخي محمد على ردك المتفاعل

لكن اخي غيرت في الامبورت ونفس النتيجة لا استطيع الدخول من ال list الى اشياء اخرى

اتمنى انت تجرب الكود الذي غيرته عندك وترى اين الخلل


import com.sun.lwuit.List;
import com.sun.lwuit.Form;
import com.sun.lwuit.Button;
import com.sun.lwuit.plaf.Style;

import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.Display;
import javax.microedition.lcdui.Image.*;
import javax.microedition.midlet.MIDlet;

public class DemoDialog extends MIDlet implements ActionListener
{





public Form f1,f2,f3,f4;
private List l;
private Button b,b1;
int x;

public void startApp()
{

Display.init(this);


f2=new Form("2");
f3=new Form("3");
f4=new Form("4");
f1=new Form("1");
b=new Button("back");
b.addActionListener(this);
b1=new Button("back");
b1.addActionListener(this);



String[] items = { "Red", "Blue", "Green", "Yellow" };
l=new List(items);








f1.addComponent(l);

f1.getStyle().setBgColor(0xfbe909);
f3.addComponent(b);
f2.addComponent(b1);

l.addActionListener(this);
l.getStyle().setBgColor(0xffffff);



x=l.getSelectedIndex();
f1.show();
}

public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
//act on the command
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==l)

{
switch(x)
{
case 0:
{
f2.show();
break;
}
case 1:
{ f3.show();
break;
}
case 2:
{ f4.show();
break;
}
}

}
else
if(ae.getSource()==b||ae.getSource()==b1)

f1.show();






}


}

لاحظ اخي انه عند الضغط على اول انديكس في اليست يدخل على فورم وعند الرجوع والخول على فورة اخرى يدخل على نفس الفورم

ماذا اعمل

ارشدني لانه المشكلة هاي تعبتني وجزاك الله خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ها هو الكود الذى عدلته كما ذكرت لك



import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;

//import javax.microedition.lcdui.Display;
//import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image.*;
//import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;

public class DemoDialog extends MIDlet implements ActionListener {

public Form f1, f2, f3;
private List l;
private Button b, b1;
int x;

public void startApp() {
Display.init(this);
f2 = new Form("2");
f3 = new Form("3");
f1 = new Form("1");
/////////////
b = new Button("back");
b1 = new Button("back");
//////////////////////
b.addActionListener(this);
b1.addActionListener(this);
///////////////////
String[] items = {"Red", "Blue", "Green", "Yellow"};
l = new List(items);
///////////
f1.addComponent(l);
f3.addComponent(b);
f2.addComponent(b1);
////////////
l.addActionListener(this);
///////////////////
f1.getStyle().setBgColor(0xffffff);
l.getStyle().setBgColor(0xffffff);
x = l.getSelectedIndex();
f1.show();
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
//act on the command

public void actionPerformed(ActionEvent ae) {
System.out.println(ae.getSource());
if (ae.getSource() == l) {
switch (x) {
case 0: {
f3.show();
break;
}
case 1: {
f3.show();
break;
}
}
} else if (ae.getSource() == b || ae.getSource() == b1) {
f1.show();
}
}
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك اخي على المتابعة

واعرف اني اتعبتك معاي لكن تحملني :P

اخي يبدو انك لم تفهم مشكلتي بعد

الكود لا يظهر فيه ايرور

والكود الذي ارسلته لب اخيرا نفسه الذي كتبته لك!!!!!

الخلل هنا

public void actionPerformed(ActionEvent ae) {

System.out.println(ae.getSource());

if (ae.getSource() == l) {

switch (x) {

case 0: {

f3.show();

break;

}

case 1: {

f3.show();

break;

}

}

} else if (ae.getSource() == b || ae.getSource() == b1) {

f1.show();

}

}

لاحظ انت جعلت عند الضغط على ثاني انديكس يفتح لك نفس الفورم

انا اريد ان يفتح فورم رقم 2

وذا ماعدلت على الكود وجعلته كالتالي

f (ae.getSource() == l) {

switch (x) {

case 0: {

f2.show();

break;

}

case 1: {

f3.show();

break;

}

فانه سوف يفتح فقط فورم 2 وعند الرجوع الى الليست والدخول على ثاني انديكس لايفتح فورم رقم 3 وانما يفتح فورم نفسه رقم 2 اي حالة case 1" لم تتفعل

شكرا لك وجزاك الله خير وجعله في ميزان حسناتك

ارجوا المتابعة من جميع المشرفين اذا امكن

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ضع هذا السطر

x = l.getSelectedIndex();

فى بدايه الداله

public void actionPerformed(ActionEvent ae) {

وجرب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يااااااااااايي شكرا

بارك الله فيك

جزاك الله خير

ولله اخي ماكنت منتبه لمكان المتغير

إن شاء الله في المرة القادمة لن يتكرر هذا الخطأ

احسن الله اليك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .