android T Preference的使用demo
时间: 2024-03-15 21:46:31 浏览: 154
android Preference的Demo
5星 · 资源好评率100%
这里是一个简单的 Android T(Android 12)上使用 Preference 的示例代码:
首先,在布局文件中定义一个 `PreferenceScreen` 控件,如下所示:
```xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="General Settings">
<SwitchPreference
android:key="notifications"
android:title="Notifications"
android:summary="Enable or disable notifications"
android:defaultValue="true" />
<ListPreference
android:key="language"
android:title="Language"
android:summary="Select your preferred language"
android:entries="@array/languages"
android:entryValues="@array/language_values"
android:defaultValue="en_US" />
</PreferenceCategory>
</PreferenceScreen>
```
在这个布局文件中,我们定义了一个 `PreferenceCategory`,并添加了一个 `SwitchPreference` 和一个 `ListPreference`。`SwitchPreference` 用于启用或禁用通知,`ListPreference` 用于选择偏好语言。
然后,在代码中,我们需要创建一个 `PreferenceFragmentCompat` 类,并在其中加载这个布局文件。如下所示:
```java
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
```
在这个 `SettingsFragment` 类中,我们重写了 `onCreatePreferences()` 方法,并调用了 `setPreferencesFromResource()` 方法来加载布局文件 `preferences.xml`。
最后,在主活动中,我们需要使用 `FragmentManager` 来管理 `SettingsFragment` 并将其添加到屏幕上。如下所示:
```java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings_container, new SettingsFragment())
.commit();
}
}
```
在这个代码中,我们通过调用 `getSupportFragmentManager()` 方法获取一个 `FragmentManager` 对象,并使用 `beginTransaction()` 方法开始一个事务。然后,我们通过调用 `replace()` 方法将 `SettingsFragment` 添加到屏幕上。
最后,在布局文件 `activity_main.xml` 中,我们需要添加一个布局容器来显示 `SettingsFragment`。如下所示:
```xml
<FrameLayout
android:id="@+id/settings_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
这样,当我们在主活动中运行应用程序时,就会显示一个具有通知开关和语言选择列表的设置屏幕。
阅读全文