ورود

View Full Version : کار نکردن دگمۀ back



dr_jacky_2005
شنبه 16 بهمن 1389, 11:33 صبح
سلام.
من یک برنامه دارم که با منو شروع میشه.
بعدش که رو یکی از منو ها کلیک میکنی،میره فرم بعدی.
توو فرم بعدی دگمۀ OK و back دارم.
ولی back کار نمیکنه.
کد back:


private Command backCommand = new Command("backkkk", Command.BACK,0);

کد ok:


sendCommand = new Command("Senddd", Command.OK, 1);


فکر کنم مشکل از priority باشه.
میشه لطف کنید ببینید قضیه چیه؟!

این کدای back و ok منو اصلیه:


private Command selectCommand = new Command("folan",Command.ITEM,1);
private Command exitCommand = new Command("exit",Command.EXIT,1);

mahdi68
شنبه 16 بهمن 1389, 11:37 صبح
مشکل اینجاست که فقط command ها تعریف کردین و جایی ازشون استفاده نشده

dr_jacky_2005
شنبه 16 بهمن 1389, 11:52 صبح
مشکل اینجاست که فقط command ها تعریف کردین و جایی ازشون استفاده نشده
ن ه ه ...
من چون فکر کردم مشکل شاید از تعریف کامند ها باشه،فقط کد اونارو نوشتم.
ازشون اسفاده کردم.
send و ok و back(منو اصلی)کار میکنن.
فقط back فرم دوم کار نمیکنه!

میشه یه توضیحی راجع به priority بدین؟

abbas.m.k
شنبه 16 بهمن 1389, 15:16 عصر
اگه ميشه سورس برنامه رو بزاريد احتمالا شما براي اين دكمه مشحص نكردين كه كلاس شنونده كجا باشه و يا كد متد CommandAction رو اشتباه نوشتيد.اون قضيه priority براي نمايش دكمه هاست كه كدام دكمه اول قرار بگيرد

dr_jacky_2005
شنبه 16 بهمن 1389, 15:47 عصر
اگه ميشه سورس برنامه رو بزاريد احتمالا شما براي اين دكمه مشحص نكردين كه كلاس شنونده كجا باشه و يا كد متد CommandAction رو اشتباه نوشتيد.اون قضيه priority براي نمايش دكمه هاست كه كدام دكمه اول قرار بگيرد
میتونم قسمت هایی از کد رو بزارم:
این رو توو کانستراکتور کلاس ( فرم دومی ) نوشتم:


setCommandListener(this);

abbas.m.k
شنبه 16 بهمن 1389, 17:35 عصر
اين كد را براي هر دكمه بايد بنويسيد.كد متد CommandAction هم بزاريد.

dr_jacky_2005
یک شنبه 17 بهمن 1389, 09:18 صبح
اين كد را براي هر دكمه بايد بنويسيد.كد متد CommandAction هم بزاريد.


public void commandAction(Command c2, Displayable d2)
{
if (c2 == backCommand)
{
try
{
con.close();
}
catch(Exception ex)
{

}
//display.setCurrent(Menu);
midlet.mnuSho(null);
return;
// destroyApp(false);
// notifyDestroyed();
}
if (c2 == sendCommand)
{
//Do SomeThing
}
}

dr_jacky_2005
سه شنبه 19 بهمن 1389, 12:18 عصر
66086
اگه ميشه سورس برنامه رو بزاريد احتمالا شما براي اين دكمه مشحص نكردين كه كلاس شنونده كجا باشه و يا كد متد CommandAction رو اشتباه نوشتيد.اون قضيه priority براي نمايش دكمه هاست كه كدام دكمه اول قرار بگيرد
بفرمایید:

abbas.m.k
سه شنبه 19 بهمن 1389, 19:01 عصر
بله مشكلتون حل شد كد كلاس Form2 رو به اين شكل تغيير بديد درست مي شود

import java.io.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
/**
*
* @author
*/
public class Form2 extends Form implements CommandListener
{
protected Display display;
private Main midlet1;
private mnu mainMenuScreen;
private Command backCommand = new Command("\u0628\u0631\u06AF\u0634\u062A", Command.BACK,1);
private Command sendCommand = new Command("\u0627\u0631\u0633\u0627\u0644", Command.OK, 1);
//private Main midlet;
//private TextField ttt;
public Form2(Main midlet1)
{
// this.midlet=midlet1;
super("form2 ast");
//ttt = new TextField("\u0634\u0645\u0627\u0631\u0647 :", "MessageAddress", 20, TextField.PHONENUMBER);
//append(ttt);
addCommand(backCommand);
addCommand(sendCommand);
setCommandListener(this);
this.midlet1=midlet1;
}

public void commandAction(Command c2, Displayable d2)
{

if (c2 == backCommand)
{
midlet1.startApp();

try
{
//display.setCurrent(midlet.mainMenuScreen);
//return;
//midlet.AbtSho();

}
catch(Exception ex)
{
//int a = 23; // vase in ke betoonam ex ro bebinam.
}
//display.setCurrent(Menu);
//midlet.mnuSho(null);
//return;
// destroyApp(false);
// notifyDestroyed();
}
if (c2 == sendCommand)
{
//SOme thing
}
}
}


به كد هاي اوليه كه import شده هم دقت داشته باش چون اونجا هم تغببر داده شده.

dr_jacky_2005
چهارشنبه 20 بهمن 1389, 09:32 صبح
بله مشكلتون حل شد كد كلاس Form2 رو به اين شكل تغيير بديد درست مي شود

import java.io.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
/**
*
* @author
*/
public class Form2 extends Form implements CommandListener
{
protected Display display;
private Main midlet1;
private mnu mainMenuScreen;
private Command backCommand = new Command("\u0628\u0631\u06AF\u0634\u062A", Command.BACK,1);
private Command sendCommand = new Command("\u0627\u0631\u0633\u0627\u0644", Command.OK, 1);
//private Main midlet;
//private TextField ttt;
public Form2(Main midlet1)
{
// this.midlet=midlet1;
super("form2 ast");
//ttt = new TextField("\u0634\u0645\u0627\u0631\u0647 :", "MessageAddress", 20, TextField.PHONENUMBER);
//append(ttt);
addCommand(backCommand);
addCommand(sendCommand);
setCommandListener(this);
this.midlet1=midlet1;
}

public void commandAction(Command c2, Displayable d2)
{

if (c2 == backCommand)
{
midlet1.startApp();

try
{
//display.setCurrent(midlet.mainMenuScreen);
//return;
//midlet.AbtSho();

}
catch(Exception ex)
{
//int a = 23; // vase in ke betoonam ex ro bebinam.
}
//display.setCurrent(Menu);
//midlet.mnuSho(null);
//return;
// destroyApp(false);
// notifyDestroyed();
}
if (c2 == sendCommand)
{
//SOme thing
}
}
}


به كد هاي اوليه كه import شده هم دقت داشته باش چون اونجا هم تغببر داده شده.
مرسی.
میشه پستتون رو ویرایش کنید و اون قسمت هایی که دست زدین رو رنگ فونتش رو قرمز کنید؟

dr_jacky_2005
چهارشنبه 20 بهمن 1389, 12:06 عصر
یه سوال دیگه...
حالا بک کار میکنه...
حالا اگه باز برم توو همون فرم2، مقادیر فیلد ها نوز سر جاشه.مثلا تکس باکس خالی بشه
من میخوام که clear بشه.
چطور؟

abbas.m.k
چهارشنبه 20 بهمن 1389, 12:12 عصر
بايد در متد كانستراكتور فرم مقدار تكس فيلد ها رو null كنيد.

dr_jacky_2005
چهارشنبه 20 بهمن 1389, 12:22 عصر
بايد در متد كانستراكتور فرم مقدار تكس فيلد ها رو null كنيد.
نه نشد!!!!!!!!!
این متغیرام است:
private TextField texttttt;

اینم کانستراکتونر:
public ّForm2(main midlet)
{
texttttt = null;