gpt4 book ai didi

android - 以编程方式在 EditText 中设置密码点

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:51 25 4
gpt4 key购买 nike

我一直在尝试以编程方式将我的编辑文本设置为密码字段,如下所示:

方法一:

password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

方法二:

password.setTransformationMethod(PasswordTransformationMethod.getInstance());

方法三:

password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

方法四:

    public class MyPasswordTransformationMethod extends PasswordTransformationMethod {
@Override
public CharSequence getTransformation(CharSequence source, View view) {
return new PasswordCharSequence(source);
}

private class PasswordCharSequence implements CharSequence {
private CharSequence mSource;
public PasswordCharSequence(CharSequence source) {
mSource = source; // Store char sequence
}
public char charAt(int index) {
return '*'; // This is the important part
}
public int length() {
return mSource.length(); // Return default
}
public CharSequence subSequence(int start, int end) {
return mSource.subSequence(start, end); // Return default
}
}
};

// Call the above class using this:
text.setTransformationMethod(new MyPasswordTransformationMethod());

我按如下方式创建了我的编辑文本:

        // Create the password edittext
EditText etPwrd = new EditText(this);

// Customise the password edittext
etPwrd.setLayoutParams(etPwrdParams);
etPwrd.setBackgroundResource(R.drawable.etlogin);
etPwrd.setTextSize(18f);
etPwrd.setLongClickable(false);
etPwrd.setPadding (5,0,0,0);
etPwrd.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
etPwrd.setTransformationMethod(new MyPasswordTransformationMethod());
etPwrd.setTypeface(officialRegularFont);
//etPwrd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
//etPwrd.setTransformationMethod(PasswordTransformationMethod.getInstance());
etPwrd.setSingleLine();
etPwrd.setHint(R.string.password_text);
etPwrd.setCustomSelectionActionModeCallback(new ActionMode.Callback() {

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}

@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
return false;
}

@Override
public void onDestroyActionMode(ActionMode mode) {
}

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}

});

我使用上述所有方法都没有成功,因为当用户输入时,edittext 仍然显示字符。

我知道如何在 XML 中将编辑文本设置为密码字段,但我需要以编程方式进行。

最佳答案

您不需要创建另一个密码转换方法,您可以这样做。

password.setTransformationMethod(PasswordTransformationMethod.getInstance());

关于android - 以编程方式在 EditText 中设置密码点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19831574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com