본문 바로가기
안드로이드

[Android] Preferences

by 엘딘 2022. 3. 31.

사용자가 값을 입력하였을때 저장하는 방법 중 하나

 

activity_main.xml
<EditText
        android:layout_width="494dp"
        android:layout_height="65dp"
        android:inputType="textPersonName"
        android:ems="10"
        android:id="@+id/editText"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" app:layout_constraintVertical_bias="0.203"/>
<Button
        android:text="프리퍼런스 쓰기"
        android:layout_width="498dp"
        android:layout_height="59dp" android:id="@+id/write"
        app:layout_constraintTop_toBottomOf="@+id/editText"
        android:layout_marginTop="64dp" app:layout_constraintStart_toStartOf="parent"
        android:layout_marginStart="52dp"/>
<Button
        android:text="다음 화면으로 이동"
        android:layout_width="498dp"
        android:layout_height="59dp" android:id="@+id/move"
        app:layout_constraintTop_toBottomOf="@+id/editText"
        android:layout_marginTop="160dp" app:layout_constraintStart_toStartOf="parent"
        android:layout_marginStart="52dp"/>
activity_second.xml
<TextView
        android:text="TextView"
        android:textSize="30dp"
        android:layout_width="329dp"
        android:layout_height="66dp" android:id="@+id/textView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.501" app:layout_constraintVertical_bias="0.226"/>
<Button
        android:text="프리퍼런스 읽기"
        android:layout_width="482dp"
        android:layout_height="76dp" android:id="@+id/read"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        android:layout_marginTop="76dp" app:layout_constraintStart_toStartOf="parent"
        android:layout_marginStart="56dp"/>

 

 

Mainactivity(데이터를 preference에 저장하는 부분)
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val write = findViewById<Button>(R.id.write)
        val move = findViewById<Button>(R.id.move)

        val edit = findViewById<EditText>(R.id.editText)

        write.setOnClickListener {
            // preference로 데이터 불러옴, pref를 통해  preference에서 문자열을 찾아옴, MODE_PRIVATE: 덧씌우기
            val pref = getSharedPreferences("pref", MODE_PRIVATE)

           // preference를 초기화
            val editor = pref.edit()
            // edtior에 데이터 기록, mydata는 데이터를 옮기는데 사용
            editor.putString("mydata", edit.text.toString())
            // 데이터 저장
            editor.commit()

            edit.setText("")
        }

        move.setOnClickListener {
            val i = Intent(this, SecondActivity::class.java)
            startActivity(i)
        }
    }
}

 

SecondActivity(데이터를 불러와 출력하는 부분)
class SecondActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)

        val read = findViewById<Button>(R.id.read)
        val textView = findViewById<TextView>(R.id.textView)

        read.setOnClickListener {
            val pref = getSharedPreferences("pref", MODE_PRIVATE)

            textView.text = pref.getString("mydata", "")
        }
    }
}

 

 

 

 

 

 

'안드로이드' 카테고리의 다른 글

[Android] SQLite  (0) 2022.04.02
[Android] Singleton  (0) 2022.03.31
[Android] Json  (0) 2022.03.31
[Android] File(추후 작성)  (0) 2022.03.31
[Android] Clock  (0) 2022.03.28

댓글