- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用模板创建了一个 SettingsActivity,并将一个 EditTextPreference 放入我的 root_preferences.xml 中。它应该包含一个密码,所以我这样编辑它:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/colorBackground">
<EditTextPreference
android:id="@+id/etPassword"
android:dialogTitle="Passwort"
android:inputType="textPassword"
android:key="pref_password"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Passwort" />
我的问题是 inputType、singleLine 和 setAllOnFocus 都不起作用。你知道问题出在哪里吗?
最佳答案
在我的例子中,InputType 不会在输入时和摘要中隐藏密码。这是我解决问题的方法
XML文件
<PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">
<EditTextPreference
app:key="pref_password"
app:title="Password"
app:dialogTitle="Set password"
app:useSimpleSummaryProvider="true"
/>
</PreferenceScreen>
在PreferenceFragmentCompat
在您的 XML 中设置,找到您的 EditTextPreference
在onCreatePreferences
部分并添加 OnBindEditTextListener
在上面。
public static class YourFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Find the password EditText
EditTextPreference etpPassword = getPreferenceManager().findPreference("pref_password");
etpPassword.setOnBindEditTextListener(new EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
// Set keyboard layout and some behaviours of the field
editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
// Replace -> android:singleLine="true"
// Not needed for password field, or set it before setTransformationMethod
// otherwise the password will not be hidden
//editText.setSingleLine(true);
// Replace -> android:inputType="textPassword"
// For hiding text
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
// Replace -> android:selectAllOnFocus="true"
// On password field, you cannot make a partial selection with .setSelection(start, stop)
editText.selectAll();
// Replace -> android:maxLength="99"
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(99)});
}
});
}
}
您也可以创建自己的 EditTextPreference
上课并设置其他东西。
public class YourEditTextPreference extends EditTextPreference {
// Add some preferences, which can be used later for checking
private Integer mPasswordMinSize = 6;
public EditTextPreferencePassword(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
public EditTextPreferencePassword(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public EditTextPreferencePassword(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public EditTextPreferencePassword(Context context) {
super(context);
init();
}
private void init(){
// Set Dialog button text
this.setNegativeButtonText("RETURN");
this.setPositiveButtonText("CHECK");
this.setOnBindEditTextListener(new OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
// Put field parameters here
}
});
}
public void setMinSize(int minSize) { mPasswordMinSize = minSize; }
public Integer getMinSize(){ return mPasswordMinSize; }
// Hide password by stars
@Override
public CharSequence getSummary() {
return getText().equals("") ? super.getSummary() : "*******";
}
}
在您的 XML 中,更改 <EditTextPreference
至 <complet.path.to.YourEditTextPreference
关于android - EditTextPreference inputType=textPassword 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60026306/
以下条件的计算结果为假。应该不是真的吧? editText.getInputType() == InputType.TYPE_NUMBER_FLAG_DECIMAL 特别是在 xml 文件中,我有 a
inputType="text"和在 XML 布局中根本没有 inputType 字段有什么区别?当我完全删除 inputType 时,行为似乎没有什么不同(可能是因为我只是不断更新不可编辑的文本),
我是 android 的初学者,需要您的建议: 1.应用将使用两个单选按钮(短信或电子邮件)发送消息(短信或电子邮件)。 2. 启动时,SMS 单选按钮将被选中并且联系人/接收者的 EditText
我创建了 Custom Edittext,其中我将 InputType 设置为 this.setInputType(InputType.TYPE_CLASS_NUMBER); 但问题是它在低于 7.0
我试图理解 textMultiLine 和editText 中 android:inputType 的 textImeMultiLine 选项。然而我无法理解答案。文档说 IME is a contr
我有一个 ListView ,每行都有一个 EditText。 EditText 应该收集数值,所以我尝试关闭字母键盘并允许用户只看到数字小键盘。 但是,当 ListView 被填充并且我单击列表中的
在我的布局中,我有一个 InputType 为时间的 EditText。 android:inputType="time" 如何将其转换为长? 我有一个函数可以使用 SimpleDateFormat
我有一个 ListView,其中每个项目都有一个复杂的布局,在某些时候包含一个 TextView 和 android:inputType="text" 和 android:ellipsize="mar
我正在尝试让 inputType=phone 始终如一地工作。它在一个项目中完美运行,但我无法让它在任何其他项目中运行。通过“工作”,我的意思是数字没有按照键入的值进行格式化。这是一个不起作用的测试项
我有一个 TextView 对象,其目的是输入一个人的名字。我看了here并看到 textPersonName 是一种输入类型。所以我选择了那个输入类型,认为它会做我想要的。 但是,这种输入类型不将首
我正在使用 jEditable 编辑一些字段。默认情况下,输入字段在单击时会变成文本字段。但我有一个字段应该是日期类型。 jEditable 有可能吗? 类型:'日期'没有帮助 最佳答案 您需要对 j
您可以设置一个 TextView的 inputType到 InputType 中的值之一提示输入的文本应该是一个人的姓名、电话号码等。即使输入法不尊重这个提示,TextView使用 KeyListen
我只需要输入以下字符 0-9 和 _ EditText中的“android:inputType”选择什么? 最佳答案 只需在 XML 中执行此操作 android:digits="0123456789
我已经用高度设计了我的用户名 EditText,我试图将相同的属性复制到我的电子邮件 EditText,当我将 InputType 更改为“textEmailAddress”时,我的自定义高度属性被忽
我的代码: final EditText input = new EditText(VideoRunActivity.this); LinearLayout.LayoutParams
我可以在 XML 中设置 InputType 'time' 我需要一个键盘,它可以显示 digits 和 colon(:)。如何以编程方式设置 InputType“时间”? 最佳答案 对于 time
我有一个带有 android:inputType="number" 的 EditText 并且当我按下数字时不写任何东西(数字)。 EditText 位于对话框 内。 如果我将 number 更改为
我正在编写一个 IME(软键盘),但我从一个应用程序 (Android Mail) 中得到了一些奇怪的行为。它正在向我的 IME 传递一个未知的输入类(通过 InputMethodService.on
我正在尝试使用 custom:inputType="text" custom:inputType="phone" 。帮助我,edit_text 始终设置defvalue。但索引值有问题如果我使用 fo
在我的应用程序中,我有一个 EditText,它带有一个用于更改键盘输入类型的按钮。代码: ToggleCambiarTeclado.setOnClickListener(new OnClickLis
我是一名优秀的程序员,十分优秀!