0

私のアプリケーションでは、userID セッションを保存し、ユーザーがアプリを閉じるまでそれを使用する方法を見つけようとしています。

PHPでは、 $_SESSION['userID'] = $user_id を使用できることを知っています

Android SQLiteでこのようなクエリを実行したい

SELECT user_id, username, password
FROM users
**WHERE user_id = $_SESSION[user_id]**

これはphpからのものですが、Androidでこれを行う方法はありますか? 共有設定について聞いたことがありますが、その仕組みがよくわかりません。

申し訳ありませんが、Android プログラミングの学習を始めたばかりです。私は少し初心者です。ここで私を助けていただければ幸いです。

EDIT : この userID は、SQLite データベースから呼び出して、ユーザーのログイン時にセッションとして保存する列です。

4

2 に答える 2

1

AppPreferences を使用して Android アプリで同様のことを行っています。これは、アプリで後で使用するために電子メールを保存するために作成したクラスの例です。

public class AppPreferences {
public static final String ApplicationPreferences = "com.akada.danceworksonline.studio.MainActivity";
public String putEmail = "email";
private SharedPreferences sharedPrefs;
private SharedPreferences.Editor prefsEditor;

public AppPreferences(Context context) {

    this.sharedPrefs = context.getSharedPreferences(ApplicationPreferences,
            0);
    this.prefsEditor = sharedPrefs.edit();

}

public String getEmailPref() {
    return sharedPrefs.getString(putEmail, "");
}

public void saveEmail(String text) {
    prefsEditor.putString(putEmail, text);
    prefsEditor.commit();
}

データベースへの呼び出しを行う場所には、この行に沿った何かがあります。

AppPreferences _appPrefs = new AppPreferences(getApplicationContext());

次に、_appPrefs.saveEmail(textviewEmail) のようなことを行うか、値を取得します。

于 2013-11-10T04:01:00.337 に答える
0

まず、グローバルな共有設定を宣言する必要があります:

SharedPreferences sp;

次に、onCreate で sp をデルケアします。

sp = getSharedPreferences("Session", 0); //"Session" is the file name it MUST be the same in all activities that require shared preferences. 

したがって、基本的にユーザーがログインするときに、ログインしているかどうかを確認し、ログインしている場合は、次を使用して共有設定に彼の ID を保存します。

SharedPreferences.Editor e = sp.edit();
                e.putInt("ID", ID-Value-that-you-used-it-to-check-for-ID);
                e.commit();

また、onCreate のログイン クラスに 2 番目のブロックを追加して、ユーザーがログインしており、ログアウトしていないかどうかを確認します。そして単に彼がそうであれば、彼を次の活動に連れて行きます.

if (cID != 0)
    {
        Intent iLogged = new Intent(this, The-Next-Class.class);
        finish();
        startActivity(iLogged);
    }

追加したばかりの値を取得したいときはいつでも...

int ID = sp.getInt("ID", 0);

ユーザーをログアウトしてセッションを削除するには、次を使用します。

sp.edit().clear().commit();
        Intent iLogout = new Intent(this,   Login.class);
        finish();
        startActivity(iLogout);
        break;

編集2:

あなたがしなければならないことは...

1) 共有設定から ID を取得します。UserID 列が int の場合は使用します。

int ID = sp.getInt("ID", 0); // 0 is default value which means if couldn't find the value in the shared preferences file give it a value of 0.

2) ID != 0 の場合、値をクエリに渡すかどうかを確認する必要があります...

SELECT user_id, username, password
FROM users
WHERE user_id = ID
于 2013-11-10T03:59:01.953 に答える