2017-10-29 1 views
1

사용자를 로그인 한 후 가장 좋은 방법은 사용자 ID를 저장하는 것입니다. 방금 Android 개발을 시작했으며 공유 환경 설정에 대해 읽었지만 작동하지 않습니다. 로그인 후 사용자 ID를 저장하는 Android

LoginActivity에서 어떤 일이 일어나고 :

나는 다음과 같이 사용자의 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); 

:

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

을 지금, 나는 위해이 사용자 ID가 필요합니다 사용자를 기반으로 목록을 작성하므로이 ID로 데이터베이스 쿼리를 수행합니다. 이 신분증을 전달하는 가장 좋은 방법은 무엇입니까? 나는 그것을 의도로 전달할 수는 있지만 어딘가 중앙에 저장하는 것이 바람직하다. 여러 활동에서이 ID가 필요합니다.

+0

"작동하지 않는 것"을 자세히 설명하십시오. 방법. – CommonsWare

+0

@CommonsWare 올바른 ID를 얻지 못하기 때문입니다. 이 경우 항상 기본값 인 "0"을 얻는 것 같습니다. – dnsko

+1

메인 애플리케이션 스레드에서 많은 I/O를 수행하고''user_id ''문자열에 대한 공통 정의를 사용하지 않는 것 이외에는 (오타를 잘못 입력하지 않도록), 괜찮은 것 같습니다. 'user.getId()'가 당신이 생각하는 것을 리턴하고 있는지 확신합니까? – CommonsWare

답변

1

해결. 사용자 CommonsWare가 here을 지적했듯이, 값은 내가 의도 한 값을 반환하지 않으므로 항상 내 SharedPreferences에서 기본값을 선택합니다.

관련 문제