2017-10-29 6 views
1

ユーザーをログインした後にユーザーIDを保存するのが最善の方法は何ですか?私はAndroid開発を始めたばかりで、Shared Preferencesについて読んだことがありますが、これはうまくいかないでしょうか?これは私のLoginActivityで起こっているログイン後にユーザーIDを格納するAndroid

SharedPreferences preferences = getSharedPreferences("preferences", 
       MODE_PRIVATE); 
     String user_id = prefs.getString("user_id", "0"); 

を今、私がために、このユーザーIDが必要になります。

MainActivity
 User user = dbHelper.findUser(email); 

     SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE); 
     SharedPreferences.Editor editor = preferences.edit(); 
     editor.putString("user_id", user.getId()); 
     editor.commit(); 

     Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class); 
     startActivity(mainIntent); 

私は次のように、ユーザのIDでログインして取得したいと思いますユーザーに基づいてリストを作成するため、このIDでデータベースクエリを実行します。このIDを渡す最善の方法は何ですか?私は意図をもってそれを伝えることができますが、どこかに集中させることが望ましいです。私は複数の活動でこのIDが必要です。

+0

「うまくいかない」と説明してください。手段。 – CommonsWare

+0

@CommonsWareこれは決して正しいIDを取得しないためです。この場合、常にデフォルト値(「0」)を取得するようです。 – dnsko

+1

'' user_id ''の文字列に共通の定義を使用しないで、メインのアプリケーションスレッドでたくさんの入出力をする以外は(誤ってどこかの入力ミスをしないように) 'user.getId()'があなたの考えを返すことは確かですか? – CommonsWare

答えて

1

解決済み。ユーザーCommonsWareがhereを指摘したように、値は私が意図した値を返さなかったため、常にSharedPreferencesからデフォルト値を選択します。

関連する問題