0

我为我的应用程序开发了一个登录表单。该应用程序成功运行。

这是我目前的 o/p

问题是如果我必须输入正确的登录信息意味着它显示的成功消息之后转到下一个活动。

如果我必须输入错误信息意味着只显示登录失败消息并重定向到相同的登录页面。

希望需要像这样的o/p:

如果我必须输入正确的登录详细信息,则意味着它直接进入下一个活动并且不应该显示成功消息。

但是,如果我必须输入错误的登录详细信息,则应该显示登录失败消息。

在这个应用程序中,

我在 WebService 中使用了以下代码:

  if(retrievedUserName.equals(userName)&&retrievedPassword.equals(password)&&!(retrievedUserName.equals("") && retrievedPassword.equals(""))){
   status = "Success";

还在android端写了以下条件:

  if(status.equals("Success"))

现在,如果我必须正确输入我的登录用户名和密码,它将显示成功消息并转到下一个活动。如果登录失败,这里会显示登录失败信息。

但同时我必须在 web 服务端编写代码:

if(retrievedUserName.equals(userName)&&retrievedPassword.equals(password)&&!(retrievedUserName.equals("") && retrievedPassword.equals(""))){
   status = "";

还写了android端的意思

if(status.equals(""))

现在,当我正确输入我的登录用户名和密码时,它不应该显示成功消息,也没有发生任何事情。但如果我输入错误的登录详细信息,登录失败消息会正确显示。

4

1 回答 1

0

假设从数据库中获取 retrievedUserName 和 retrievedPassword,如下更改 Web 服务。

if(retrievedUserName.equals(userName)&&retrievedPassword.equals(password)){
   status = "Success"; //login success
} else {
   status = "";  //login failed
}

要从 UI 调用 Web 服务,请使用 AsyncTask 类,如下所示。尽量不要在主 UI 线程中使用网络调用。

class BgRunner extends AsyncTask<String, Void, String> {
    @Override
    protected Object doInBackground(String... params) {
      //perform login authentication
      //call webservice method
      return <result of authentication>
    }
    @Override
    protected void onPostExecute(String loginStatus) {
        if(null != loginStatus && loginStatus.equals("Success")) {
            //start new activity                
        } else {
           //login failed
           //print login failed message on UI
        }
    }
}

阅读AsyncTask了解更多详情。

一点建议。保持问题简单明了!您会以这种方式收到及时的回复。

顺便说一句,我认为这个答案会让你继续前进。

于 2012-10-17T08:23:39.503 回答