Cài đặt Một phần của Android Jetpack.
Các chế độ cài đặt cho phép người dùng thay đổi chức năng và hành vi của ứng dụng. Các chế độ cài đặt có thể ảnh hưởng đến hành vi ở chế độ nền (chẳng hạn như tần suất ứng dụng đồng bộ hoá dữ liệu với đám mây) hoặc có phạm vi tiếp cận rộng hơn (chẳng hạn như thay đổi nội dung và bản trình bày của giao diện người dùng).
Bạn nên sử dụng Thư viện ưu tiên AndroidX để tích hợp các chế độ cài đặt mà người dùng có thể định cấu hình vào ứng dụng. Thư viện này quản lý giao diện người dùng và tương tác với dung lượng lưu trữ để bạn chỉ xác định chế độ cài đặt riêng mà người dùng có thể định cấu hình. Thư viện này đi kèm với một giao diện Material cung cấp trải nghiệm người dùng nhất quán trên các thiết bị và phiên bản hệ điều hành.
Bắt đầu
Preference
là thành phần cơ bản của Thư viện ưu tiên. Màn hình cài đặt chứa hệ phân cấp Preference
. Bạn có thể xác định hệ phân cấp này là một tài nguyên XML hoặc có thể tạo hệ phân cấp mã.
Các phần dưới đây mô tả cách tạo một màn hình cài đặt đơn giản bằng cách sử dụng Thư viện ưu tiên AndroidX.
Tạo hệ phân cấp
Ví dụ sau đây cho thấy một hệ phân cấp đơn giản được xác định thông qua XML:
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"> <SwitchPreferenceCompat app:key="notifications" app:title="Enable message notifications"/> <Preference app:key="feedback" app:title="Send feedback" app:summary="Report technical issues or suggest new features"/> </PreferenceScreen>
Hệ phân cấp này có hai Preferences
riêng lẻ: SwitchPreferenceCompat
cho phép người dùng bật/tắt chế độ cài đặt và Preference
cơ bản không có tiện ích.
Khi xây dựng hệ phân cấp, mỗi Preference
phải có một khoá riêng.
Tăng cường hệ phân cấp
Để tăng cường hệ phân cấp qua thuộc tính XML, hãy tạo một PreferenceFragmentCompat
, ghi đè onCreatePreferences()
và cung cấp tài nguyên XML để tăng cường, như trình bày trong ví dụ dưới đây:
Kotlin
class MySettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences, rootKey) } }
Java
public class MySettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.preferences, rootKey); } }
Sau đó, bạn có thể thêm Fragment
này vào Activity
như mọi Fragment
khác:
Kotlin
class MySettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) supportFragmentManager .beginTransaction() .replace(R.id.settings_container, MySettingsFragment()) .commit() } }
Java
public class MySettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportFragmentManager() .beginTransaction() .replace(R.id.settings_container, new MySettingsFragment()) .commit(); } }