2015-11-18 2 views
0

Я использовал свойства по умолчанию для edittext, чтобы сделать его полем «Пароль», android:password="true".On button click Видимость пароля в EditText

Теперь у меня есть Button кроме EditText. Я хочу, пока я нажимаю эту кнопку, мои символы пароля должны быть видны мне, и когда я удаляю палец с кнопки, мой пароль должен автоматически преобразовываться в точки.

Я ценю, может ли кто-нибудь помочь мне в этом?

ответ

1

вам нужно настроить onTouchListener на вашем EditText

passwordView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 

и ACTION_DOWN вы

passwordView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

на ACTION_UP и ACTION_CANCEL вы

passwordView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
1

Это может быть легко сделано с помощью OnTouchListener как этого

Button yourButton = (Button)findViewById(R.id.your_button); 
yourButton.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent e) { 
     switch (e.getActionMasked()) { 
      case MotionEvent.ACTION_DOWN: { 
       //SHOW PASSWORD HERE 
       return true; 
      } 
      case MotionEvent.ACTION_CANCEL: 
      case MotionEvent.ACTION_UP: { 
       //HIDE PASSWORD HERE 
       return true; 
      } 
      default: 
       return false; 
     } 
    } 
}); 

Надеется, что это помогает :)

1

Попробуйте это может быть, это будет поможет вам

button.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent e) { 
     switch (e.getActionMasked()) { 
      case MotionEvent.ACTION_DOWN: { 
       editText.setInputType(InputType.TYPE_CLASS_TEXT); 
       return true; 
      } 
      case MotionEvent.ACTION_CANCEL: 
      case MotionEvent.ACTION_UP: { 
         editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
       return true; 
      } 

     } 
    } 
}); 
+0

Не забудьте 'вернуть false' как' default' путь коды для 'switch', в противном случае метод' onTouch() 'будет иметь некоторые пути кода, которые не возвращают значение –