android preference controller 如何获取preference
时间: 2024-10-25 08:12:14 浏览: 26
在Android中,`PreferenceController` 是一个用于处理 `Preference` 对象的框架,它通常在自定义视图(比如 `PreferenceFragment` 或者 `PreferenceActivity`)中使用。如果你想从 `PreferenceController` 中获取偏好设置值,你可以按照以下步骤操作:
1. **创建`PreferenceController`**:首先,你需要创建一个实现了`PreferenceController`接口的类,并覆盖其中的`createPreferenceScreen()`方法。在这个方法里,你可以添加或返回一个`PreferenceScreen`对象,包括`EditTextPreference`, `ListPreference`, 等等。
```java
public class MyCustomPreferenceController extends PreferenceController {
// ...
@Override
public void createPreferenceScreen(PreferenceScreen screen) {
EditTextPreference editText = new EditTextPreference(screen.getContext());
editText.setKey("my_key");
editText.setTitle("My Custom Pref");
screen.add(editText);
}
// ...
}
```
2. **绑定到`Preference`**:在`onCreateView()` 或其他合适的地方,将你的`PreferenceController`实例与需要管理的`Preference`关联起来:
```java
// 在PreferenceFragment中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.preference_layout, container, false);
MyCustomPreferenceController controller = new MyCustomPreferenceController(getActivity());
((Preference) view.findViewById(R.id.my_custom_pref)).setDependency(controller);
return view;
}
```
3. **访问偏好值**:当你需要获取这个偏好设置的值时,可以直接通过`Preference`对象的`getText()`或`getValue()`方法获取用户输入的值:
```java
String value = ((EditTextPreference) findViewById(R.id.my_custom_pref)).getText();
```
阅读全文