android - 是否可以将 EditTextPreference 与 CheckBoxPreference 结合使用?

标签 android preferenceactivity

我有一个 PreferenceActivity,其中包括一个包括调用转移选项的类别。我想要的是一种偏好:

  • 在用户按下右侧的复选框时启用/禁用。
  • 如果用户按下文本(或首选项中的任何其他内容),则打开 EditTextPreference 对话框

它可能没有任何用处,但这里是这个特定偏好类别的 fragment :

    <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>

编辑

如果可能的话,我想在这个方法中实现它:

    // 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());

}

EDIT2

如果有人仍然想知道 - 这就是我想要的首选项:

http://i.imgur.com/GHOeK.png

EDIT3

我已经四处搜索了几个小时,找到了一个词:“PreferenceGroupAdapter”。但是,我还没有找到向我展示如何使用它的示例或教程。建议?这是正确的路径吗?

EDIT4

如果这真的不可能,我非常希望得到一个替代(用户友好)解决方案的建议,我可以实现该解决方案而不是组合的编辑和复选框首选项。

最佳答案

你可以做到这一点。首先,为应该从 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;
    }
});

希望对你有帮助。

关于android - 是否可以将 EditTextPreference 与 CheckBoxPreference 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734105/

相关文章:

android - 在移动设备上的 Android 浏览器中访问麦克风

Android 5.0 - 首选项中的复选框不可见

Android Preferenceactivity getView

java - PreferenceActivity 中的工具栏设置

java - 处理去同步

java - RecyclerView 返回空

android - 从android中的短信查询联系人姓名

Android 应用程序无法启动 noClassDefFoundError

java - fragment 实例化崩溃

android - getActionBar() 在 PreferenceActivity 中返回 null (AppCompat-v7 21)