最近,我将Android项目迁移到AndroidX,并使用了AndroidX库中的EditTextPreference。现在,我想将EditTextPreference的最大长度设置为50。我尝试使用:
android:maxLength="50"
但是它不起作用。
似乎所有android名称空间都无法与EditTextPreference一起使用,并且没有代码建议,因此我找不到任何相关代码来设置最大长度。如何设置最大长度?
答案 0 :(得分:0)
您可以尝试使用Java代码,这将起作用。 这里被剪了。
EditText et = (EditText) findViewById(R.id.myeditText);
et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(50) }); // maximum length is 50
希望对您有所帮助。
答案 1 :(得分:0)
您需要按键找到EditTextPreference,然后将其设置为onBindEditTextListener并通过onBindEditText方法更改布局属性:
EditTextPreference preference = findPreference("edit_text_preference_key");
preference.setOnBindEditTextListener(new EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setInputType(InputType.TYPE_CLASS_NUMBER); // set only numbers allowed to input
editText.selectAll(); // select all text
int maxLength = 2;
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)}); // set maxLength to 2
}
});
您可以将此代码放在PreferencesFragment或PreferencesActivity的onResume()方法中。
答案 2 :(得分:0)
这是用于设置EditTextPreference的最大长度(在这种情况下为10)的代码:
final EditTextPreference prefCustomText = findPreference(ActivityPreferences.PREF_DISPLAY_CUSTOM_TEXT);
prefCustomText.setOnBindEditTextListener(editText -> {
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});
});
我正在添加@ViktorBrešan写的信息:
我认为您应该将新的InputFilter附加到可能具有 以前已添加到EditText中。你可以打电话给他们 editText.getFilters()