Cod*_*ate 7 android preferenceactivity
我有一个PreferenceActivity,其中包括一个包含呼叫前转选项的类别.我想要的是偏好:
它可能没有任何用处,但这里有一个特殊偏好类别的片段:
<PreferenceCategory
android:title="@string/category_callforward">
<EditTextPreference
android:key="call_forward_always"
android:title="@string/call_forward_always"
android:summary="@string/call_forward_forwardto" />
</PreferenceCategory>
Run Code Online (Sandbox Code Playgroud)
编辑
如果可能的话,我想在这个方法中实现它:
// Locates the correct data from saved preferences and sets input type to numerics only
private void setCallForwardType()
{
ep1 = (EditTextPreference) findPreference("call_forward_always");
EditText et = (EditText) ep1.getEditText();
et.setKeyListener(DigitsKeyListener.getInstance());
}
Run Code Online (Sandbox Code Playgroud)
EDIT2
如果有人还在想 - 这就是我想要的偏好:

EDIT3
我现在已经搜索了几个小时,并提出了一个单词:'PreferenceGroupAdapter'.但是,我没有找到示例或教程向我展示如何使用它.建议?这甚至是正确的道路吗?
EDIT4
如果这真的不可能,我非常希望我可以实现的替代(用户友好)解决方案的建议,而不是组合的Edit-和Checkbox偏好.
你可以这样做。首先,为首选项创建一个类,该类应从PreferenceActivity. 像这样使用:
// editbox ise your EditTextPreference, so set it.
checkbox = (CheckBoxPreference) findPreference("checkbox_preference");
checkbox.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if(newValue.toString().equals("false")) {
PrefActivity.this.editbox.setEnabled(false);
} else if(newValue.toString().equals("true")) {
PrefActivity.this.editbox.setEnabled(true);
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助。