728x90
LinearLayout 변경
.xml에서
<EditText
android:id="@+id/et_save"
android:layout_width="100dp"
android:layout_height="wrap_content" />
EditText 설정
.java로 가서
EditText et_save;
String shared = "file";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_save = (EditText) findViewById(R.id.et_save); //(EditText)id 자바 파일과 연결
SharedPreferences sharedPreferences = getSharedPreferences(shared,0); //SharedPreference 선언
}
@Override
protected void onDestroy() {
super.onDestroy();
SharedPreferences sharedPreferences = getSharedPreferences(shared,0);
SharedPreferences.Editor editor = sharedPreferences.edit();//저장할 때 항상 Editor로 불러옴, SharedPreference안에 editor 연결
String value = et_save.getText().toString();//EditText에 입력한 값 받아옴 toString형태로
editor.putString("hesse",value);//저장하는 실질적인 구문, hesse라는 이름(별명)으로 value값 저장
editor.commit(); //실직적인 save 완료해라 라는 뜻
//1.앱 죽었을 때 저장하는 거 까지 완료
}
Ctrl + O 로 onDestroy() 생명주기 만들기 onCreate 되면 실행되는 생명주기
String value = sharedPreferences.getString("hesse",""); //2.꺼내오는 거라서 빈 값 입력
et_save.setText(value); //value값을 setText해줘라
OnCreate에 추가
이렇게 임시저장하는 법을 알아봤다.
보통 설정에서 푸시 알림 on,off에 저장 가능
하지만 임시저장이기 때문에 앱을 지우면 사라지기 때문에 앱을 지워도 유지하고 싶으면 데이터베이스에 저장해야 한다.
코드
//<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"
tools:context=".MainActivity">
<EditText
android:id="@+id/et_save"
android:layout_width="100dp"
android:layout_height="wrap_content" />
</LinearLayout>
//<MainActivity.java>
package com.example.sharedexample;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText et_save;
String shared = "file";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_save = (EditText) findViewById(R.id.et_save); //(EditText)id 자바 파일과 연결
SharedPreferences sharedPreferences = getSharedPreferences(shared,0); //SharedPreference 선언
String value = sharedPreferences.getString("hesse",""); //2.꺼내오는 거라서 빈 값 입력
et_save.setText(value); //value값을 setText해줘라
}
@Override
protected void onDestroy() {
super.onDestroy();
SharedPreferences sharedPreferences = getSharedPreferences(shared,0);
SharedPreferences.Editor editor = sharedPreferences.edit();//저장할 때 항상 Editor로 불러옴, SharedPreference안에 editor 연결
String value = et_save.getText().toString();//EditText에 입력한 값 받아옴 toString형태로
editor.putString("hesse",value);//저장하는 실질적인 구문, hesse라는 이름(별명)으로 value값 저장
editor.commit(); //실직적인 save 완료해라 라는 뜻
//1.앱 죽었을 때 저장하는 거 까지 완료
}
}
결과

앱을 켰다 꺼도 EditText 속 내용이 유지되는 것을 알 수 있다.
728x90
'[Android Studio] (Java)' 카테고리의 다른 글
| [Android Studio] 자바 선택이 안 될 경우 (0) | 2023.08.25 |
|---|---|
| [Android Studio] (firebase) (0) | 2023.08.25 |
| [Android Studio] (Navigation Menu) (수정 필요) (0) | 2023.08.24 |
| [Android Studio] (ListView) (0) | 2023.08.24 |
| [Android Studio] (패키지 구조 & 역할) (0) | 2023.08.24 |