如何在 EditText Preference androidx 中使用数字?

How to use numbers in EditText Preference androidx?

我需要在 androidx 的 EditText 首选项中显示数字键盘。

proxy.xml:

 <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >


    <EditTextPreference
        android:dialogTitle="edittext_dialogtitle_proxy_port"
        android:key="edittext_key_proxy_port"
        android:inputType="numberPassword"
        android:digits="0123456789."
        android:summary="Summary"
        android:title="Port"/>

</PreferenceScreen>

主要活动:

 public class MainActivity extends PreferenceFragmentCompat {
    EditTextPreference mPortField;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        addPreferencesFromResource(R.xml.proxy);
        mPortField = (EditTextPreference) findPreference("edittext_key_proxy_port");
        mPortField.setOnBindEditTextListener(new EditTextPreference.OnBindEditTextListener() {
            @Override
            public void onBindEditText(@NonNull EditText editText) {

            }
        });
 }

我没有得到数字键盘

[![enter image description here][1]][1]

根据this doc android:inputType is applicable only for EditText, not EditTextPreference (which isn't extending EditText, DialogPreference instead)。但是您已经想出了如何将 EditText 隐藏在 EditTextPreference 中,所以也许只需在 onBindEditText 中以编程方式在下面的行

中设置数字限制
editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

(更多信息 HERE