我正在J2ME中创建一个应用程序。我有一个Loginpage
和SearchingAccount
页。
我在这两页之间插入了AlertSuccess
和AlertFailure
。如果用户成功登录
他点击警告后重定向AlertSuccess
,重定向到SerachAcount
页面。
我成功完成此操作但是当用户输入错误的详细信息时,我需要显示AlertFailure
并再次显示登录页面但我的应用程序显示AlertSuccess
并显示SearchAccount
页面,即使用户输入错误也是如此的信息。
我尝试了很多但没有成功。请给我任何关于如何做到这一点的提示。
这是我的MIDlet流程屏幕:
这是我的代码供参考。
} 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;
}
答案 0 :(得分:2)
如果我是对的,您的代码会自动生成。您需要手动编写所有代码,然后在命令单击上调用该函数(将显示下一个表单)。
在此表单中,您应该写display.setCurrent(Form Name)
。但是不要忘记将窗口小部件附加到特定表单。