سلام دوستان امیدوارم حالتون خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش Sharedpreference به زبان کوتلین در اندروید می پردازیم قبلا آموزش Sharedpreference را به زبان جاوا برای شما قرار داده بودیم امروز به آموزش Sharedpreference به زبان کوتلین خواهیم پرداخت در ادامه با ما همراه باشید.
ابتدا باید زبان کوتلین را به اندروید استودیو اضافه کنید برای اینکار می توانید از آموزش زیر استفاده کنید.
در این آموزش از constraintlayout استفاده شده است باید به آموزش های قبلی رجوع کنید.
سپس در layout یی به نام activity_main.xml کدهای زیر را قرار دهید.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="ir.php.Main2Activity">
<Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Store"
android:onClick="save"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.246"
app:layout_constraintVertical_bias="0.535" />
<EditText
android:id="@+id/user"
android:hint="UserName"
android:layout_width="343dp"
android:layout_height="46dp"
android:ems="10"
android:inputType="textEmailAddress"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.52"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="62dp" />
<EditText
android:id="@+id/pass"
android:hint="Password"
android:layout_width="342dp"
android:layout_height="47dp"
android:ems="10"
android:inputType="textPassword"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.523"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/user"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/btn_save" />
<Button
android:onClick="retrieve"
android:id="@+id/btn_retrieve"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="retrieve"
app:layout_constraintLeft_toRightOf="@+id/btn_save"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/pass"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.588"
app:layout_constraintVertical_bias="0.155" />
</android.support.constraint.ConstraintLayout>
کدهای بالا شکلی همانند زیر را ایجاد می کند. (برای بزرگ شدن بروی عکس کلیک کنید)
دو فیلد وجود دارد که با وارد کردن داده و زدن دکمه save مقادیر ذخیره شده و سپس با کلیک بروی Retrieve مقدار های ذخیره شده Toast می شود.
سپس وارد اکتیوتیتی مربوط به layout شده در اینجا نام آن برابر با MainActivity.kt است و کدهای زیر را در آن قرار دهید.
package ir.programchi
import android.app.Notification
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.app.NotificationCompat
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.ProgressBar
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun save(view : View)
{
val username = findViewById(R.id.user) as EditText;
val password = findViewById(R.id.pass) as EditText;
val sharePreferences = getSharedPreferences("userInfo",Context.MODE_PRIVATE)
val editor = sharePreferences.edit()
editor.putString("username",username.text.toString())
editor.putString("password",password.text.toString())
editor.apply()
Toast.makeText(this,"Saved",Toast.LENGTH_SHORT)
}
fun retrieve (view : View)
{
val sharePreferences = getSharedPreferences("userInfo",Context.MODE_PRIVATE)
val name =sharePreferences.getString("username",null)
val pass = sharePreferences.getString("password",null)
Toast.makeText(this,name+","+pass,Toast.LENGTH_SHORT)
}
}
دو void وجود دارد که یکی عمل ذخیره و دومی عمل بازیابی را انجام می دهد برای اینکار از کالاس sharePreferences استفاده شده است برخی اعتقاد دارن این کلاس در اندروید استودیو کار نمی کنند ولی با تست متوجه می شوید که کد بالا کار می کند .
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
مطالعه بیشتر