2014-10-11 21 views
0

後進入第一個字符我有一個​​EditText像這樣在我的xml文件:變化的EditText的inputType用戶

<EditText 
    android:id="@+id/InputPass" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" 
    android:layout_marginBottom="20dp" 
    android:layout_marginLeft="40dp" 
    android:layout_marginRight="40dp" 
    android:drawableLeft="@drawable/ic_lock" 
    android:gravity="right" 
    android:hint="رمز عبور" 
    android:singleLine="true" 
    android:textSize="18sp" /> 

出於某種原因,我想用戶輸入的第一個字符後,改變其的inputType。我嘗試這種方式:

Pass.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void beforeTextChanged(CharSequence s, int start, int before, int count) { 

       if(start == 0){ 
        Pass.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
       } 
      } 

      @Override 
      public void afterTextChanged(Editable s) { 
      } 
     }); 

但它不工作! 那裏有人知道任何解決方案嗎?

回答

0

我這個一個取得最佳結果:

Pass.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if(hasFocus){ 
      Pass.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
     } 
    } 
}); 
0

裏面的

afterTextChanged

方法,嘗試以下幾點:

@Override 
     public void afterTextChanged(Editable s) { 
      System.out.println("Editable: "+s); 
      if(s.getText().toString().length ==1) 
       Pass.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
     } 
+0

的getText()是未定義爲可編輯的類型! – MAY3AM 2014-10-11 20:37:54

1

變化:

Pass.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 

爲:

Pass.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
+1

謝謝兄弟!它的魅力! :) – MAY3AM 2014-10-11 20:48:15

+0

@ MAY3AM歡迎! – Abdellah 2014-10-11 20:50:34

+0

Hi bro,一個問題,當我申請這個解決方案並獲得edittext文本後,'Pass.getText()。toString()'返回的字符串錯過了第一個字符!例如如果我輸入123456獲得文本返回23456?!?!?! – MAY3AM 2014-10-12 20:23:34

相關問題