2012-04-23 3 views

답변

2

에게 나를 다른 rememer의 목적을.

흐름이 이와 같아야합니다.

처음에는 resisterd is 및 passwrod를 사용하여 로그인하십시오. 위의 대답 에서 언급 한 바와 같이 공유 환경 설정에서 저장 위치는 응용 프로그램이 검사를 시작됩니다

이제 때마다 (공유 선호는 항상 정적 변수를 사용하여 달성 될 수있는 동일한 thogh 권장합니다. 그러나 정적 변수는 항상 신뢰할 수 없습니다입니다) 이 목적을 위해 sharedpref의 내용은 null이 아닌 경우에만 다시 로그인하라는 메시지가 표시됩니다.

그러나 사용자 기억 장치의 목적은 사용자가 로그 아웃 할 때 다음에 loggin 할 때 이전에 사용한 사용자 이름/암호. 앱에 대한 로그가있을 때 로그 아웃 옵션이 있어야합니다. 로그 아웃 옵션을 사용하면 사용자가 로그인 페이지로 이동합니다. 이전에 나를 확인한 경우 이전 사용자 이름이 표시됩니다. 선택하지 않으면이 필드는 비어있게됩니다.

또 다른 제안은 앱의 사용자 특정 부분에 대해서만 로그인을 유지하는 것입니다. 사용자가 로그인해야하는 경우 좋은 사용자 인터페이스가 아니기 때문에 어떤 앱인지 알 수 없습니다.

이되는 사항들

5

나를 기억하기 위해 공유 환경 설정을 사용하여 로컬로 저장합니다 (부울 값 - 참 또는 거짓). 만약 당신이 "내 계정 정보 기억"및 "자동 로그인"체크 박스를 사용한다면,이 기능을 구현하는 방법을 제안하십시오. 확인란을 선택한 다음 공유 환경 설정을 사용하여 메모리에 사용자 이름, 암호를 다시 저장하십시오. 응용 프로그램을 열 때 공유 환경 설정에서 사용자 이름과 암호에 값을 줄 수 있는지 확인하십시오. 그렇다면 로그인 프로세스가 자동으로 시작됩니다. 바로 로그인 화면을 표시 지우기를

편집 -.?이 로그인 버튼의 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 
} 
+0

괜찮습니다. 예를 올리시겠습니까? 덕분에 당신의 소중한 제안을 위해 –

+0

게시했습니다. 도움이되는지 확인 – nithinreddy

+0

고마워요. 그게 정말 도움이. –

관련 문제