J2ME:重定向到Alert页面

时间:2012-05-07 08:08:38

标签: java-me alert midp lcdui

我正在J2ME中创建一个应用程序。我有一个LoginpageSearchingAccount页。

我在这两页之间插入了AlertSuccessAlertFailure。如果用户成功登录
他点击警告后重定向AlertSuccess,重定向到SerachAcount页面。

我成功完成此操作但是当用户输入错误的详细信息时,我需要显示AlertFailure并再次显示登录页面但我的应用程序显示AlertSuccess并显示SearchAccount页面,即使用户输入错误也是如此的信息。

我尝试了很多但没有成功。请给我任何关于如何做到这一点的提示。

这是我的MIDlet流程屏幕: Here is my MIDlet flow screen.

这是我的代码供参考。

 } else if (displayable == Login) {
        if (command == Login1) {
             u_Name=txtUserId.getString();
             u_Password=txtPassword.getString();
            readUserRecords(u_Name, u_Password);

            switchDisplayable(null, getWaitScreen());
public void readUserRecords(String userName,String Password){
try{
  byte[] recData = new byte[5];
  int len;

  for(int i = 1; i <= rs.getNumRecords(); i++){
    if(rs.getRecordSize(i) > recData.length){

      recData = new byte[rs.getRecordSize(i)];
    }
    len = rs.getRecord(i, recData, 0);
    String str= new String(recData,0,len);

   s=str.indexOf(userName);
   s1=str.indexOf(Password);
   splitUserRecord(str);

   System.out.println("User Login Page--------------------------------------");
   System.out.println("---index of string-------"+s+" and "+s1);
   if(u_id.equals(u_Name)&& u_pass.equals(u_Password))
  {

        System.out.println("UserLogin Successfully "+str);
        alertSuccess = new Alert("OK", "You are Login Successfully!",
        successimg, AlertType.INFO);
       alertSuccess.setImage(successimg);
        display.setCurrent(alertSuccess, Login);



   }
else
   {
        System.out.println("Enter Wrong user name");
        alertFailure = new Alert("Cancel", "Enter correct user name and password!",failureimg, AlertType.INFO);
         System.out.println("Enter Wrong user name1");
            alertFailure.setImage(failureimg);
             System.out.println("Enter Wrong user name2");
             display.setCurrent(alertFailure, Login);
              System.out.println("Enter Wrong user name3");
       // getAlertFailure();        

    }

  }
}catch (Exception e){}
}
public Alert getAlertFailure() {
    if (alertFailure == null) {

        alertFailure = new Alert("alert");
        alertFailure.setTimeout(Alert.FOREVER);
        alertFailure.setImage(failureimg);
        display.setCurrent(alertFailure,Login);
    }
    return alertFailure;
}
    public Alert getAlertSuccess() {
    if (alertSuccess == null) {

        alertSuccess = new Alert("alert1");
        alertSuccess.setTimeout(Alert.FOREVER);          
    }
    return alertSuccess;
}

1 个答案:

答案 0 :(得分:2)

如果我是对的,您的代码会自动生成。您需要手动编写所有代码,然后在命令单击上调用该函数(将显示下一个表单)。

在此表单中,您应该写display.setCurrent(Form Name)。但是不要忘记将窗口小部件附加到特定表单。