SharedPreferences trong Android

May 05 2023
Hôm nay, chúng ta sẽ xem cách dễ nhất để lưu trữ dữ liệu bằng một ứng dụng mẫu. Nói chung, khi chúng ta nói lưu trữ dữ liệu, đầu tiên chúng ta nghĩ đến SQL, MongoDB, v.v.

Hôm nay, chúng ta sẽ xem cách dễ nhất để lưu trữ dữ liệu bằng một ứng dụng mẫu. Nói chung, khi chúng ta nói lưu trữ dữ liệu, trước tiên chúng ta nghĩ đến SQL, MongoDB, v.v. Tuy nhiên, chúng ta sẽ sớm thấy rằng chúng ta không cần chúng cho dữ liệu đơn giản .

Khi nói đến dữ liệu đơn giản, chúng tôi thường giữ dữ liệu như tuổi của người dùng , họ đến từ quốc gia nào và cài đặt ưa thích của họ . Dữ liệu này không bị mất ngay cả khi người dùng đóng ứng dụng.

SharedPreferences là gì?

Chúng tôi có thể giữ dữ liệu đơn giản mà không cần thêm bất cứ thứ gì. Đó là một cấu trúc hoạt động với cặp Khóa-Giá trị . Các loại dữ liệu chúng tôi có thể giữ được giới hạn; Int, Boolean, Float, Long và String.

Bây giờ chúng ta hãy sử dụng cấu trúc này trong một ứng dụng trong đó chúng ta lấy tuổi của người dùng và lưu nó. (Tôi thả liên kết GitHub ở đây .)

class MainActivity : AppCompatActivity() {

    private lateinit var preferences : SharedPreferences

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        }
}

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        preferences = this.getSharedPreferences("com.aliduman.savemyage"
                                                , Context.MODE_PRIVATE)
    }

cái này :

Chúng tôi sử dụng nó để hiển thị hoạt động chúng tôi đang tham gia.

com.aliduman.savemyage:

Trong phần này, nó chỉ yêu cầu chúng tôi đặt tên. Nói chung, chúng tôi đặt tên gói trong phần này.

Bối cảnh.MODE_PRIVATE:

Chế độ xác định ai có thể truy cập tùy chọn ứng dụng của chúng tôi. Riêng tư là chế độ mặc định và chỉ có thể truy cập chế độ này từ ứng dụng này.

Hãy sử dụng SharedPreferences sau khi thực hiện các định nghĩa và cài đặt. Mục tiêu của chúng tôi là nhập và lưu tuổi của người dùng, sau đó lưu trữ tuổi này và hiển thị cho người dùng sau khi đóng và mở ứng dụng.

var currentAge = preferences.getInt("age",-1)

getInt():

Phương thức này trả về giá trị đã cho. Nếu nó không được tạo ra trước đó, nó sẽ.

tuổi:

Đây chính là mấu chốt của giá trị mà chúng ta muốn lưu giữ.

-1:

Tham số này chúng ta dùng để gán giá trị mặc định nếu không nhập dữ liệu.

if (currentAge != -1) { //if user saved age before..
    age_text.hint = currentAge.toString()

 } else {//if first time user saved age

      save_button.setOnClickListener {
          var ageInput =  Integer.valueOf(age_text.text.toString())
          preferences.edit().putInt("age", ageInput).apply() //We save it to SharedPreferences.
          }
   }

biên tập()

Chúng tôi sử dụng nó để thực hiện các thay đổi hoặc chuyển nhượng trong giá trị của chúng tôi.

putInt()

Chúng tôi sử dụng nó để đưa dữ liệu vào những gì chúng tôi lưu trữ.

áp dụng()

phương pháp này là cần thiết để thực hiện tất cả những thay đổi này.

Người dùng nhập số 23 và nhấn nút lưu.↑

Kết thúc có hậu, khi người dùng vào lại ứng dụng, chúng tôi có thể hiển thị tuổi của họ bằng thuật toán và SharedPreferences của chúng tôi.↑

!CẢNH BÁO!

Tôi đã bỏ qua một số bước quan trọng như kiểm tra null để tập trung vào SharedPreferences. Đừng quên kiểm tra xem dữ liệu người dùng nhập vào có phải là null hay không. Mã sạch, mã đáng tin cậy