본문 바로가기
Android

SharedPreferences (간단한 정보저장)

by 일용직 코딩노동자 2019. 9. 10.
728x90
반응형

MainActivity.java

import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


private TextView textView1;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

editText = (EditText)findViewById(R.id.edit1);
textView1 = (TextView)findViewById(R.id.resultText1);

//저장된 값을 불러오기 위해 같은 네임파일을 찾음.
SharedPreferences sf = getSharedPreferences("sFile",MODE_PRIVATE);
//text라는 key에 저장된 값이 있는지 확인. 아무값도 들어있지 않으면 ""를 반환
String text = sf.getString("text","");
textView1.setText(text);

}

@Override
protected void onStop() {
super.onStop();

// Activity가 종료되기 전에 저장한다.
//SharedPreferences를 sFile이름, 기본모드로 설정
SharedPreferences sharedPreferences = getSharedPreferences("sFile",MODE_PRIVATE);

//저장을 하기위해 editor를 이용하여 값을 저장시켜준다.
SharedPreferences.Editor editor = sharedPreferences.edit();
String text = editText.getText().toString(); // 사용자가 입력한 저장할 데이터
editor.putString("text",text); // key, value를 이용하여 저장하는 형태
//다양한 형태의 변수값을 저장할 수 있다.
//editor.putString();
//editor.putBoolean();
//editor.putFloat();
//editor.putLong();
//editor.putInt();
//editor.putStringSet();

//최종 커밋
editor.commit();
}
}

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="저장할 내용을 입력하세요."
android:textSize="20dp" />

<EditText
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/resultText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:textSize="20dp" />

</LinearLayout>

--결과--

 

궁금하신 사항은 댓글 남겨주세요.

728x90
반응형

댓글