http://codeman77.tistory.com/29
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="org.hansung.sharedpreferencesex.MainActivity" android:orientation="vertical" android:gravity="center_vertical"> <TextView android:text="ID" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:ems="10" android:id="@+id/idText" android:hint="ID"/> <TextView android:text="PASSWORD" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:ems="10" android:id="@+id/pwdText" android:hint="****"/> <CheckBox android:text="로그인 정보 기억하기" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/checkBox" /> <Button android:text="Login" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/loginBtn"/></LinearLayout>package org.hansung.sharedpreferencesex;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;public class MainActivity extends AppCompatActivity { private boolean saveLoginData; private String id; private String pwd; private EditText idText; private EditText pwdText; private CheckBox checkBox; private Button loginBtn; private SharedPreferences appData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 설정값 불러오기 appData = getSharedPreferences("appData", MODE_PRIVATE); load(); idText = (EditText) findViewById(R.id.idText); pwdText = (EditText) findViewById(R.id.pwdText); checkBox = (CheckBox) findViewById(R.id.checkBox); loginBtn = (Button) findViewById(R.id.loginBtn); // 이전에 로그인 정보를 저장시킨 기록이 있다면 if (saveLoginData) { idText.setText(id); pwdText.setText(pwd); checkBox.setChecked(saveLoginData); } loginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 로그인 성공시 저장 처리, 예제는 무조건 저장 save(); } }); } // 설정값을 저장하는 함수 private void save() { // SharedPreferences 객체만으론 저장 불가능 Editor 사용 SharedPreferences.Editor editor = appData.edit(); // 에디터객체.put타입( 저장시킬 이름, 저장시킬 값 ) // 저장시킬 이름이 이미 존재하면 덮어씌움 editor.putBoolean("SAVE_LOGIN_DATA", checkBox.isChecked()); editor.putString("ID", idText.getText().toString().trim()); editor.putString("PWD", pwdText.getText().toString().trim()); // apply, commit 을 안하면 변경된 내용이 저장되지 않음 editor.apply(); } // 설정값을 불러오는 함수 private void load() { // SharedPreferences 객체.get타입( 저장된 이름, 기본값 ) // 저장된 이름이 존재하지 않을 시 기본값 saveLoginData = appData.getBoolean("SAVE_LOGIN_DATA", false); id = appData.getString("ID", ""); pwd = appData.getString("PWD", ""); }}
출처: http://codeman77.tistory.com/29 [☆]