추후 추가 공부 후 세부 작성예정
LinearLayout이 뭔지!
SharedPreferences
앱을 종료하더라도 재실행했을때 데이터가 남겨두고 싶을때 사용하는거
오늘의 시나리오:
앱 실행 ->edittext보이고->글자입력하고->뒤로가기버튼 눌러서 종료
edittext로 일단 입력하는 칸 만들어줌
id 지정해줌
main으로 가서 id 똑같이 선언하고,
string 선언해줌
Oncreate에 id연결해줌
Ctrl+O 눌러서 onDestroy()눌러주면
@Override
protected void onDestroy() {
super.onDestroy();
}
라는 생명주기가 하나 더 만들어짐
앱을 종료했을때 (액티비티 벗어났을때 =파괴되었을때 =뒤로가기)
sharedpreference로 호출하며 나갈수있게 구문 만들어줌
다시 앱을 키면 oncreate호출됨 ( 저장된shared불러옴)
SharedPreferences sharedPreferences = getSharedPreferences(shared, 0);
//저장할때 항상 editor를 불러와줘야함
SharedPreferences.Editor editor = sharedPreferences.edit();
//editor를 shared안에 연결해줌
String value = et_save.getText().toString();
//에딧텍스트 에 뭔가를 입력했을때 그 값을 받아오는 구문 edittext.getText() 여기선 et_saver가 edittext아이디값이라서!
editor.putString("song", value);
//string형태로 값을 저장, 별명으로 저장한것과 같음
editor.commit();
결과:
여기서잠깐! 생명주기가 뭘까?
App Life Cycle
App의 생명 주기는 App의 실행/종료 및 App이 Foreground/Background 상태에 있을 때, 시스템이 발생시키는 event에 의해 App의 상태가 전환되는 일련의 과정을 뜻합니다.
그렇다고 한다.
참고
https://velog.io/@rnfxl92/%EC%95%B1-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0-Application-Life-Cycle
https://bangu4.tistory.com/112
오늘의 소스코드
activitymain_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.js
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); //id값을 java에연결
//불러오기구문
SharedPreferences sharedPreferences = getSharedPreferences(shared, 0);
String value = sharedPreferences.getString("song","");
//꺼내옴, 빈값 입력해줘야함
et_save.setText(value);
//value의 string값을 에딧텍스트에 저장해줌
}
//저장구문
@Override
protected void onDestroy() {
super.onDestroy();
SharedPreferences sharedPreferences = getSharedPreferences(shared, 0);
//저장할때 항상 editor를 불러와줘야함
SharedPreferences.Editor editor = sharedPreferences.edit();
//editor를 shared안에 연결해줌
String value = et_save.getText().toString();
//에딧텍스트 에 뭔가를 입력했을때 그 값을 받아오는 구문 edittext.getText() 여기선 et_saver가 edittext아이디값이라서!
editor.putString("song", value);
//string형태로 값을 저장, 별명으로 저장한것과 같음
editor.commit();
}
}
앱을 삭제하면 사라짐
말그대로 임시저장기능
안 사라지게 하려면, 데이터베이스를 연동해서 서버 운영할때 저장해둬야함.
'✍2021,2022 > app(android studio)' 카테고리의 다른 글
앱만들기 9. (Navigation Menu 커스텀) (0) | 2021.07.12 |
---|---|
앱만들기 8 . (WebView) (0) | 2021.07.12 |
앱만들기6 (0) | 2021.07.10 |
앱만들기5.(ListView) (0) | 2021.07.08 |
앱만들기 4 (패키지구조) (0) | 2021.07.06 |