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

データベースから retrieveUserName と retrievePassword がフェッチされると仮定して、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 に答える