Java android.support.v7.preference.EditTextPreference如何将键盘设置为数字

Java android.support.v7.preference.EditTextPreference如何将键盘设置为数字,java,android,android-support-library,android-preferences,Java,Android,Android Support Library,Android Preferences,android:inputType无法使用支持库中的EdidtTextPreference。使用此首选项是否可以更改输入类型?我想要一个带有数字键盘的首选项。更具体地说,我想设置一个自定义键盘,但我似乎甚至无法使用此首选项打开默认键盘。如果无法使用EditTextPreference,有人能告诉我如何做我想做的事情吗 <android.support.v7.preference.EditTextPreference android:key="key" android:tit

android:inputType
无法使用支持库中的
EdidtTextPreference
。使用此首选项是否可以更改输入类型?我想要一个带有数字键盘的首选项。更具体地说,我想设置一个自定义键盘,但我似乎甚至无法使用此首选项打开默认键盘。如果无法使用
EditTextPreference
,有人能告诉我如何做我想做的事情吗

<android.support.v7.preference.EditTextPreference
    android:key="key"
    android:title="title"
    android:maxLines="1"
    android:dialogMessage="title"
    android:inputType="number"  />

实际上,解决方法很简单。由于android:inputType=“number”似乎不起作用,我采用了以下方法:

PreferenceFragment.java

@Override
public void onResume() {
    EditTextPreference preference = (EditTextPreference) findPreference("key");
    EditText et = preference.getEditText();
    if (et != null) {
        et.setInputType(InputType.TYPE_CLASS_NUMBER);
        //in fact, you can do whatever you can normally with an EditText here
    }
}

尽管我不确定这是否适用于最新的androidx首选项。

“我想设置一个自定义键盘”——这是不可能的。选择输入法编辑器的是用户,而不是您。充其量,您可以向输入法编辑器提示您想要什么(例如,通过
android:inputType
)。
EditTextPreference
support.v7
版本并没有说它支持配置
EditText
,我甚至不知道
EditText
来自哪里,更不用说它是如何配置的了。@commonware是的,这也是我所震惊的,无法访问
EditText
。不过我在源代码中找到了它。
PreferenceFragmentCompat
启动
PreferenceDialogFragmentCompat
,该对话框具有
EditText
。有一些处理程序可以让我访问
EditText
,我周一回去工作时会知道更多:)可能的重复