1

Android アプリケーションにログイン画面を実装しています。「Remember me」と「Sign In Automatic」のチェックボックスがあります。この機能を実装する方法を提案してください。

4

2 に答える 2

5

私を覚えているので、共有設定を使用してローカルに保存します (ブール値 - TRUE または FALSE)。チェックボックスがオンになっている場合は、共有設定を再度使用して、ユーザー名とパスワードをメモリに保存します。アプリを開いたときに、共有設定でユーザー名とパスワードの値を指定できるかどうかを確認してください。はいの場合、ログインプロセスを自動的に開始できます。それ以外の場合は、ログイン画面を表示するだけです。クリア?

編集 -

これを使用して、ログイン ボタンの onClickListener に値を格納します。

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
        SharedPreferences.Editor prefsEditor = myPrefs.edit();
        prefsEditor.putString("LOGIN_ID", username_field.getText().toString());
        prefsEditor.putString("LOGIN_PSWD", password_field.getText().toString());
        prefsEditor.putBoolean("REMEMBER", checkbox.isChecked());
        prefsEditor.commit();

繰り返しますが、アプリの起動時に、このコードを使用して値を読み取り、ログインします -

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
        boolean isRemember = myPrefs.getBoolean("REMEMBER", false);
   if(!isRemember)
     //Go to login screen. 
else
{     
String id = myPrefs.getString("LOGIN_ID", "");
String pswd = myPrefs.getString("LOGIN_PSWD", "");
//try to autologin now with these values
}
于 2012-04-23T11:58:16.093 に答える
2

私の提案では、rememer me の目的は異なります。

流れはこうあるべき。

最初に、登録者名とパスワードを使用してログインします。上記の回答に記載されているように、共有設定に保存します(共有設定は常に推奨されますが、静的変数を使用しても同じことが実現できます。ただし、静的変数は常に信頼できるとは限りません)

アプリが起動されるたびに、この目的のために sharedpref の内容を確認し、それが null でない場合にのみ、ユーザーは再度ログインするように求められる必要があります

しかし、remember me の目的は、ユーザーがログアウトするとき、次にログインするときに、以前に使用したユーザー名/パスワードを表示することです。アプリのログインがある場合は、ログアウト オプションが必要です。ログアウト オプションを使用すると、ユーザーはログイン ページに移動します。ここで、以前に me を覚えている場合は、以前のユーザー名が表示されます。チェックされていない場合、これらのフィールドは空白になります。

もう 1 つの提案は、アプリのユーザー固有の部分にのみログインを保持することです。ユーザーがログインを強制され、アプリが何であるかを確認する必要がある場合、それは適切なユーザー インターフェイスではありません。

これらはいくつかの提案です

于 2012-04-23T13:14:13.987 に答える