1. Trang chủ
  2. » Công Nghệ Thông Tin

Android Programing Bài 9: Asset (part 2)

11 101 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 237,45 KB

Nội dung

BÀI 9: Asset - Shared preference - Memory Device  (Bài tập ứng dụng) I Lưu trạng thái ứng dụng Bước 1: – Gọi hàm getSharedPreferences, hàm trả SharedPreferences có đối Đối số tên tập tin để lưu trạng thái, đối số kiểu lưu Chú ý đối số ta ghi tên tập tin (không cần ghi phần mở rộng, phần mở rộng xml ta lưu thành công), đối số thường ta để MODE_PRIVATE: SharedPreferences pre=getSharedPreferences(“my_data“, MODE_PRIVATE); Bước 2: – Tạo đổi tượng Editor phép chỉnh sửa liệu: SharedPreferences.Editor edit=pre.edit(); Bước 3: – Đưa liệu muốn lưu trữ vào edit phương thức edit.putXXX(“key”,”value”); Tùy vào kiểu liệu ta muốn lưu trữ mà XXX thay kiểu liệu phù hợp: editor.putString(“user”, “drthanh”); editor.putString(“pwd”, “hoilamgi”); editor.putBoolean(“checked”, true); Bước 4: – Lưu trạng thái cách gọi dòng lệnh: editor.commit(); Sau bạn làm bước chương trình lưu trạng thái, nói mặc định phần mở rộng xml (tức trạng thái lưu định dạng tập tin XML) Bên ta đặt tên my_data có nghĩa chương trình tạo tập tin my_data.xml – tự động lưu vào thư mục shared_prefs hình bên dưới: II Cách đọc trạng thái lưu Bước 1: – Gọi hàm getSharedPreferences để trả đối tượng SharedPreferences (giống phần lưu trạng thái mà Tơi nói trên) SharedPreferences pre=getSharedPreferences (“my_data“,MODE_PRIVATE); Bước 2: – Gọi phương thức getXXX(“key”,giá trị mặc định) để lấy giá trị lúc trước lưu boolean bchk=pre.getBoolean(“checked”, false);//đối số Tôi để false giá trị mặc định tìm khơng thấy key =checked String user=pre.getString(“user”, “”);//lấy giá trị lưu key=user, khơng thấy gán giá trị mặc định chuỗi rỗng String pwd=pre.getString(“pwd”, “”);//giống Ví dụ:tạo hình đăng nhập có checkbox cho phép lưu lại thơng tin đăng nhập, lần sau khởi đội lại lấy lại thơng tin nhập lúc trước để người sử dụng đỡ phải công nhập lại (biết Shared Preferences), xem hình họa:  Khi chọn nút đăng nhập, chương trình đóng Activity hiển thị Activity đây:  Chọn nút Thoát, chương trình tiếp tục đóng Activity giúp tắt hẳn Activity ứng dụng  Khởi động lại chương trình phải tự động load lại thơng tin đăng nhập trước (Nếu đăng nhập có chọn “Lưu thông tin“)  Cấu trúc Project: – Layout XML hình (activity_main.xml): – Layout XML activity_dang_nhap_thanh_cong.xml: – Bạn xem Source code MainActivity.java: import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; public class MainActivity extends Activity { Button btnlogin; EditText edituser,editpassword; CheckBox chksaveaccount; //đặt tên cho tập tin lưu trạng thái String prefname="my_data"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnlogin=(Button) findViewById(R.id.btnlogin); edituser =(EditText) findViewById(R.id.editUser); editpassword=(EditText) findViewById(R.id.editPassword); chksaveaccount=(CheckBox) findViewById(R.id.chksaveacount); btnlogin.setOnClickListener( new View.OnClickListener() { public void onClick(View arg0) { doLogin(); } }); } /** * hàm đăng nhập hệ thống */ public void doLogin() { finish();//đóng hình Intent i=new Intent(this, DangNhapThanhCongActivity.class); //truyền liệu qua hình i.putExtra("user", edituser.getText().toString()); startActivity(i);//mở hình } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); //gọi hàm lưu trạng thái savingPreferences(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); //gọi hàm đọc trạng thái restoringPreferences(); } /** * hàm lưu trạng thái */ public void savingPreferences() { //tạo đối tượng getSharedPreferences SharedPreferences pre=getSharedPreferences (prefname, MODE_PRIVATE); //tạo đối tượng Editor để lưu thay đổi SharedPreferences.Editor editor=pre.edit(); String user=edituser.getText().toString(); String pwd=editpassword.getText().toString(); boolean bchk=chksaveaccount.isChecked(); if(!bchk) { //xóa lưu trữ trước editor.clear(); } else { //lưu vào editor editor.putString("user", user); editor.putString("pwd", pwd); editor.putBoolean("checked", bchk); } //chấp nhận lưu xuống file editor.commit(); } /** * hàm đọc trạng thái lưu trước */ public void restoringPreferences() { SharedPreferences pre=getSharedPreferences (prefname,MODE_PRIVATE); //lấy giá trị checked ra, khơng thấy giá trị mặc định false boolean bchk=pre.getBoolean("checked", false); if(bchk) { //lấy user, pwd, không thấy giá trị mặc định rỗng String user=pre.getString("user", ""); String pwd=pre.getString("pwd", ""); edituser.setText(user); editpassword.setText(pwd); } chksaveaccount.setChecked(bchk); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } Bạn xem source code DangNhapThanhCongActivity.java: import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class DangNhapThanhCongActivity extends Activity { TextView txtMsg; Button btnThoat; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dang_nhap_thanh_cong); txtMsg=(TextView) findViewById(R.id.txtmsg); btnThoat=(Button) findViewById(R.id.btnThoat); btnThoat.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub finish(); } }); Intent i=getIntent(); txtMsg.setText("Hello : "+i.getStringExtra("user")); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present getMenuInflater().inflate(R.menu.activity_dang_nhap_thanh_cong, menu); return true; } }

Ngày đăng: 22/07/2019, 14:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w