Android 는 Shared Preferences 를 통 해 사용자 이름과 비밀번호 기억 기능 을 자동 으로 로그 인 합 니 다.

최근 Android 프로젝트 는 자동 로그 인 기능 이 필요 합 니 다.완 료 된 후에 이 기능 은 Shared Preferences 에 의 해 이 루어 집 니 다.
SharedPreferences 프로필
Shared Preferences 도 가 벼 운 데이터 저장 방식 입 니 다.그 본질은 XML 파일 을 기반 으로 key-value 키 값 을 저장 하여 데 이 터 를 저장 하 는 것 입 니 다.보통 간단 한 설정 정 보 를 저장 하 는 데 사 용 됩 니 다.그 저장 위 치 는/data/<패키지 이름>/sharedprefs 디 렉 터 리 아래.Shared Preferences 대상 자 체 는 저장 과 수정 을 지원 하지 않 고 데이터 만 가 져 올 수 있 으 며 저장 수정 은 Editor 대상 을 통 해 이 루어 집 니 다.
SharedPreferences 사용 사례:사용자 이름 비밀 번 호 를 기억 하고 자동 으로 로그 인 합 니 다.
Shared Preference 를 대충 알 아 본 다음 사용자 이름 비밀 번 호 를 기억 하고 자동 으로 로그 인 하 는 예 를 보 겠 습 니 다.

package com.dt5000.ischool.activity; 
import android.annotation.SuppressLint; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import com.dt5000.ischool.util.DTUtil; 
import com.dt5000.ischool.util.MyApplication; 
/** 
 * @author: duanyr 
 * @    : 2012-11-13   2:36:47 
 * 
 * @   :     
 */ 
@SuppressLint("WorldReadableFiles") 
public class LoginActivity extends DTUtil { 
  private static final String TAG = "    "; 
  private EditText username; 
  private EditText password; 
  private CheckBox autoLogin; 
  private SharedPreferences sharedPreferences; 
  private String message; 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    MyApplication.getInstance().addActivity(this); 
    sharedPreferences = this.getSharedPreferences("userInfo",Context.MODE_WORLD_READABLE); 
    if (sharedPreferences.getBoolean("AUTO_ISCHECK", false)) { 
      Intent intent = new Intent(); 
      intent.setClass(LoginActivity.this, MainActivity.class); 
      startActivity(intent); 
    } else { 
      setContentView(R.layout.activity_login); 
      initView(); 
    } 
  } 
  /** 
   *         
   */ 
  public void initView() { 
    Log.i(TAG, "       "); 
    username = (EditText) findViewById(R.id.username); 
    password = (EditText) findViewById(R.id.password); 
    autoLogin = (CheckBox) findViewById(R.id.autoLogin); 
    //         
    username.setText(sharedPreferences.getString("userName", "")); 
  } 
  /** 
   *              
   * @param view 
   */ 
  public void userLogin(View view) { 
    String usernameString = username.getText().toString(); 
    String passwordString = password.getText().toString(); 
    if (validateUser(usernameString, passwordString)) { 
      Editor editor = sharedPreferences.edit(); 
      editor.putString("userName", usernameString); 
      if (autoLogin.isChecked()) {//      
        editor.putString("password", passwordString); 
        editor.putBoolean("AUTO_ISCHECK", true).commit(); 
      } 
      editor.commit(); 
      Intent intent = new Intent(); 
      intent.setClass(LoginActivity.this, MainActivity.class); 
      startActivity(intent); 
    } else { 
      alert(this, message); 
    } 
  } 
  //     
  public void visitorLogin(View view) { 
    Intent intent = new Intent(); 
    intent.setClass(LoginActivity.this, MainActivity.class); 
    startActivity(intent); 
  } 
  /** 
   *             
   * 
   * @param username 
   * @param password 
   * @return 
   */ 
  public boolean validateUser(String username, String password) { 
    Boolean flag = false; 
    try { 
      //...     web  ,          ,     
      flag = true; 
    } catch (Exception e) { 
      // TODO Auto-generated catch block 
      Log.e(TAG, e.getMessage()); 
      message = "       "; 
    } 
    return flag; 
  } 
  /** 
   *              
   */ 
  public void logout_listener(View view) { 
    dialog_Exit(this); 
  } 
  /** 
   *       ,                  
   */ 
  public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
      dialog_Exit(this); 
      return false; 
    } 
    return false; 
  } 
} 
페이지 레이아웃 캡 처:

생 성 된 프로필 위치 와 코드

userInfo.xml 의 구체 적 인 코드 는 다음 과 같 습 니 다.

<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map> 
<string name="userName">777</string> 
<string name="password">111111</string> 
<boolean name="AUTO_ISCHECK" value="true" /> 
</map> 
위 에서 말 한 것 은 편집장 이 소개 한 안 드 로 이 드 가 Shared Preferences 를 통 해 자동 로그 인 을 통 해 사용자 이름과 비밀 번 호 를 기억 하 는 기능 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기