SharedPreferences trong Android với Xamarin (Bài 7)

SharedPreferences trong Android với Xamarin được sử dụng để lưu dữ liệu kiểu boolean, float, int, string và long. Dữ liệu được lưu trong preference là riêng tư (private), bất kỳ ứng dụng nào khác đều không thể truy cập.

SharedPreferences trong Android với Xamarin – Các bước thực hiện

Bước 1: Shared Preferences cho phép chúng ta lưu và đọc dữ liệu sử dụng cặp key/value. Để sử dụng shared preferences , chúng ta gọi phương thức getSharedPreferences() với cú pháp như sau:

ISharedPreferences sp = Application.Context.GetSharedPreferences ("filename", FileCreationMode.Private);

Bước 2: Gọi phương thức Edit() của ISharedPreferencesEditor

ISharedPreferencesEditor editor = sp.Edit();

Bước 3: Xử lý ghi và đọc

3.1. Xử lý ghi thông tin vào Shared Preferences

editor.PutX("key", value);
editor.Apply();

Trong đó x là kiểu dữ liệu và có thể là int, long, float, string, boolean

3.2 Xử lý đọc thông tin từ Shared Preferences

var value = sp.GetX("key", default_value);

Trong đó x là kiểu dữ liệu và có thể là int, long, float, string, boolean

SharedPreferences trong Android với Xamarin – Ví dụ

Thiết kế giao diện ứng dụng

SharedPreferences trong Android với Xamarin

Viết xử lý

EditText txtUserName, txtPassword;
CheckBox chkRemember;
ISharedPreferences sp;

protected override void OnCreate(Bundle savedInstanceState)
{
 base.OnCreate(savedInstanceState);

 // Create your application here
 SetContentView(Resource.Layout.Shared_pref);

 txtUserName = FindViewById<EditText>(Resource.Id.txtUserName);
 txtPassword = FindViewById<EditText>(Resource.Id.txtPassword);
 chkRemember = FindViewById<CheckBox>(Resource.Id.chkRemember);

 sp = Application.Context.GetSharedPreferences("loginInfo", FileCreationMode.Private);
 txtUserName.Text = sp.GetString("username","");
 txtPassword.Text = sp.GetString("password", "");
 chkRemember.Checked = sp.GetBoolean("remember", false);

}

[Java.Interop.Export("xuLyDangNhap")]
public void xuLyDangNhap(View v)
{
 string usrName, pwd;
 usrName = txtUserName.Text;
 pwd = txtPassword.Text;

 if (usrName.Equals("admin") && pwd.Equals("123"))
 {
   Toast.MakeText(this, "Đăng nhập thành công", ToastLength.Short).Show();
   ISharedPreferencesEditor editor = sp.Edit();
   if (chkRemember.Checked)
   { 
     editor.PutString("username", usrName);
     editor.PutString("password", pwd);
     editor.PutBoolean("remember", true);
   } else
   {
     editor.Clear();
   }
   editor.Apply();
 } else
 {
   Toast.MakeText(this, "Thông tin đăng nhập sai.", ToastLength.Short).Show();
   txtUserName.RequestFocus();
 }
}

[Java.Interop.Export("xuLyThoat")]
public void xuLyThoat(View v)
{
 Finish();
}

Chạy ứng dụng

Nhập thông tin đăng nhập hợp lệ (tên đăng nhập là admin, mật khẩu là 123) và không chọn “Ghi nhớ thông tin đăng nhập”

Thoát ứng dụng và chạy lại

Nhập thông tin đăng nhập hợp lệ (tên đăng nhập là admin, mật khẩu là 123) và chọn “Ghi nhớ thông tin đăng nhập”

Thoát ứng dụng và chạy lại

Trả lời