- 글 적고 저장 누르면 다시 실행시켰을 때 저장되어 있음 .
<MainaActivity.java>
package com.example.shared_p_app;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
private int SelectedColor;
EditText editText;
Button btnRed, btnGreen, btnBlue;
Button btnSave, btnRemove;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
btnRed = findViewById(R.id.btnRed);
btnGreen = findViewById(R.id.btnGreen);
btnBlue = findViewById(R.id.btnBlue);
btnSave = findViewById(R.id.btnSave);
btnRemove = findViewById(R.id.btnRemove);
setBtnColorListener();
setBtnPreferenceListener();
preferences = PreferenceManager.getDefaultSharedPreferences(this);
editor = preferences.edit();
initializeValue();
}
public void setBtnColorListener() {
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnRed:
SelectedColor = Color.RED;
editText.setTextColor(Color.RED);
break;
case R.id.btnGreen:
SelectedColor = Color.GREEN;
editText.setTextColor(Color.GREEN);
break;
case R.id.btnBlue:
SelectedColor = Color.BLUE;
editText.setTextColor(Color.BLUE);
break;
}
}
};
btnRed.setOnClickListener(listener);
btnGreen.setOnClickListener(listener);
btnBlue.setOnClickListener(listener);
}
public void initializeValue() {
editText.setText(preferences.getString("text", "저장된 데이터가 없음"));
editText.setTextColor(preferences.getInt("color", Color.GREEN));
}
public void setBtnPreferenceListener() {
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
//데이터 저장하기
case R.id.btnSave:
editor.putInt("color", SelectedColor);
editor.putString("text",editText.getText().toString());
editor.apply();
break;
// 데이터 제거하기
case R.id.btnRemove:
editor.remove("color");
editor.remove("text");
editor.apply();
break;
}
}
};
btnSave.setOnClickListener(listener);
btnRemove.setOnClickListener(listener);
}
}
<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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:text="저장" />
<Button
android:id="@+id/btnRemove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_weight="1"
android:text="제거" />
</LinearLayout>
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="텍스트를 입력하세요" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnRed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:text="RED" />
<Button
android:id="@+id/btnGreen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:text="GREEN" />
<Button
android:id="@+id/btnBlue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="2dp"
android:text="Button" />
</LinearLayout>
</LinearLayout>