I tried to programmatically configure my edittext as a password field as follows:
Method 1:
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Method 2:
password.setTransformationMethod(PasswordTransformationMethod.getInstance());
Method 3:
password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
Method 4:
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;
I created my edit text as follows:
// 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; } });
I was not able to use all of the above approaches, as the edit text still displays characters when the user enters them.
In XML, I know how to set the edit text as a password field, but I need it programmatically.
source share