2013-11-14 4 views
1

setInputType() и setTransformationMethod() не работает, а я создания пароля EditText программно в Android ...Я не могу программно создать пароль edittext?

Мой код:

EditText edtPassword = new EditText(getApplicationContext()); 
edtPassword.setLayoutParams(rowParams); 
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD|InputType.TYPE_CLASS_TEXT); 
edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

Это не работает ...

+0

что делает «не работает» значит – Blackbelt

+0

Что ошибка вы получаете? – Avijit

+0

Вам даже нужен setInputType и setTransformationMethod? – mvieghofer

ответ

0

Попробуйте этот код:

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

Без установки трансформации. Или, если он не работает с методом setinput, используйте setTransformation, но не оба одновременно.

+1

Спасибо за ответ. Я попробовал свой код в обоих направлениях, но он не работает. setInputType() или setTransformationMethod() не работает. – Ravindra

+0

Каков результат? Просто какой-то обычный ввод текста? Вы сначала положили TYPE_CLASS_TEXT? – Hitman

+0

да я положил TYPE_CLASS_TEXT первым и не работает – Ravindra

0

изменение

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

в

editPassword.setInputType(InputType.TYPE_CLASS_TEXT | inputType.TYPE_TEXT_VARIATION_PASSWORD); 

Для реализации стиля пароль для EditText, код,

editPassword.setTransformationMethod 
(new android.text.method.PasswordTransformationMethod().getInstance()); 

setTransformationMethod функция преобразует входное значение а (точка) после некоторого интервала или после ввода следующего символа перед интервалом eted.

0

использование

EditText edtPassword = new EditText(getApplicationContext()); 
edtPassword.setLayoutParams(rowParams); 
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD|InputType.TYPE_CLASS_TEXT); 
edtPassword.setTransformationMethod(new PasswordTransformationMethod()); 
0

Согласно TextView документации, программной версии андроида: пароль setTransformationMethod(). Так что-то вроде:

mEdit.setTransformationMethod(PasswordTransformationMethod.getInstance()); должен выполнить работу.

Если это не работает, попробуйте это

Password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
+0

Что делать, если оба не работают? Для меня это работает в эмуляторах, но не на реальных устройствах :( – Ahmed

1

вас нету добавить EditText в представлении, поэтому он не может работать ... Этот код работает отлично для меня

LinearLayout mLinearLayout = new LinearLayout(this); 
     mLinearLayout = (LinearLayout)findViewById(R.id.mylinearlayout); 


      EditText lEditText = new EditText(this); 
      lEditText .setLayoutParams(new   LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
               LayoutParams.WRAP_CONTENT)); 
      lEditText.setText("Text Here"); 
      mLinearLayout.addView(lEditText); 
      lEditText.setWidth(50);  // change width 
      lEditText.setHeight(20); 

      lEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT); 
0

Add следующая строка в onCreate() метод, в котором вы создали edittext

edtPassword.setTransformationMethod(new MyPasswordTransformationMethod()); 

После этого создать PasswordTransformationMethod класс в одной и той же деятельности:

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; 
     } 
     public char charAt(int index) { 
      return '*'; 
     } 
     public int length() { 
      return mSource.length(); 
     } 
     public CharSequence subSequence(int start, int end) { 
      return mSource.subSequence(start, end); 
     } 
    } 
}; 
Смежные вопросы