SharedPreferences দিয়ে ডেটা সংরক্ষণ ও পুনরুদ্ধার
এই উদাহরণটি দেখায় কিভাবে কোটলিন ব্যবহার করে এন্ড্রয়েডে SharedPreferences ব্যবহার করে ব্যবহারকারীর নাম, পাসওয়ার্ড এবং "যাদ রাখুন" চেকবক্সের অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করা যায়।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট XML ফাইল কনফিগার করুন
res/layout/activity_main.xml ফাইলে নিচের কোড যোগ করুন:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="Tutorials Point"
android:textAlignment="center"
android:textColor="@android:color/holo_green_dark"
android:textSize="32sp"
android:textStyle="bold" />
<EditText
android:id="@+id/etName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_centerInParent="true"
android:layout_marginTop="75dp"
android:ems="10"
android:hint="নাম লিখুন" />
<EditText
android:id="@+id/etPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/etName"
android:layout_centerHorizontal="true"
android:ems="10"
android:hint="পাসওয়ার্ড লিখুন" />
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/etPassword"
android:layout_alignStart="@id/etPassword"
android:layout_marginTop="10dp"
android:text="লগইন" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnLogin"
android:layout_alignStart="@id/btnLogin"
android:layout_marginTop="10dp"
android:text="আমার শংসাপত্র মনে রাখুন" />
</RelativeLayout>
ধাপ ৩: strings.xml-এ স্ট্রিং রিসোর্স যোগ করুন
<string name="name">name</string> <string name="password">password</string> <string name="checkBox">checkBox</string>
ধাপ ৪: MainActivity.kt ফাইলে লজিক লিখুন
import android.content.SharedPreferences
import android.os.Bundle
import android.preference.PreferenceManager
import android.widget.Button
import android.widget.CheckBox
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var sharedPreferences: SharedPreferences
private lateinit var editor: SharedPreferences.Editor
private lateinit var name: EditText
private lateinit var password: EditText
private lateinit var button: Button
private lateinit var checkBox: CheckBox
private lateinit var strName: String
private lateinit var strPassword: String
private lateinit var strCheckBox: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
name = findViewById(R.id.etName)
password = findViewById(R.id.etPassword)
button = findViewById(R.id.btnLogin)
checkBox = findViewById(R.id.checkBox)
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
editor = sharedPreferences.edit()
checkSharedPreference()
button.setOnClickListener {
if (checkBox.isChecked) {
editor.putString(getString(R.string.checkBox), "True")
editor.apply()
strName = name.text.toString()
editor.putString(getString(R.string.name), strName)
editor.commit()
strPassword = password.text.toString()
editor.putString(getString(R.string.password), strPassword)
editor.commit()
} else {
editor.putString(getString(R.string.checkBox), "False")
editor.commit()
editor.putString(getString(R.string.name), "")
editor.commit()
editor.putString(getString(R.string.password), "")
editor.commit()
}
}
}
private fun checkSharedPreference() {
strCheckBox = sharedPreferences.getString(getString(R.string.checkBox), "False").toString()
strName = sharedPreferences.getString(getString(R.string.name), "").toString()
strPassword = sharedPreferences.getString(getString(R.string.password), "").toString()
name.setText(strName)
password.setText(strPassword)
checkBox.isChecked = strCheckBox == "True"
}
}
ধাপ ৫: AndroidManifest.xml আপডেট করুন
সাধারণ ম্যানিফেস্ট কনফিগারেশন যথেষ্ট।
অ্যাপ্লিকেশন চালানোর পদ্ধতি
ডিভাইস সংযুক্ত করে Run করুন। নাম, পাসওয়ার্ড লিখে চেকবক্স টিক দিয়ে লগইন করুন। অ্যাপ রিস্টার্ট করলে ডেটা থাকবে।