2014-05-02 47 views
-1

我正在學習Android編程,並遇到了問題。我有這個切換按鈕,當我輸入一個文本,並打開按鈕時,文本被加星標(密碼,隨心所欲地調用它),當按鈕關閉時,文本是文本。但是,我遇到了一個問題,我沒有看到問題。 的代碼塊的樣子:ToggleButton checked EditText值從文本更改爲密碼,反之亦然

toggleCommand.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if(toggleCommand.isChecked()){ 
        input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 
       } else{ 
        input.setInputType(InputType.TYPE_CLASS_TEXT); 
       } 
      } 
     }); 

我沒有看到這個問題。你能告訴我我做錯了什麼,並解釋嗎? 當我打開應用程序..我輸入的東西,它的密碼。我按下按鈕取消選中它,密碼文本變成文本。我再次按下按鈕,而不是再次獲得密碼,文本保持正常。

+2

願這求助:關於setInputType這裏進一步說明? http://stackoverflow.com/questions/2586301/set-inputtype-for-an-edittext –

回答

1

這裏是工作代碼:

toggleCommand.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View arg0) 
     { 
      if (toggleCommand.isChecked()) 
      { 
       input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
      } 
      else 
      { 
       input.setInputType(InputType.TYPE_CLASS_TEXT); 
      } 
     } 
    }); 

更多信息:http://thenewboston.org/watch.php?cat=6&number=27

Programmatically change input type of the EditText from PASSWORD to NORMAL & vice versa

編輯:http://developer.android.com/reference/android/text/InputType.html

+0

這工作,但我沒有得到的代碼邏輯。你可以解釋嗎? – MrSilent

1

試試這個:

toggleCommand = (ToggleButton)findViewById(R.id.the_id_of_your_togglebutton) ; 
toggleCommand.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{ 
    @Override 
    public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) 
    { 
     if(isChecked) 
     { 
      input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
     } 
     else 
     { 
      input.setTransformationMethod(null); 
     } 
    } 
}); 

你可以閱讀更多關於它的documentation


UPDATE

做出這種操縱的,你可以使用TransformationMethod

因此,設置文本到隱藏的密碼,你必須使用PasswordTransformationMethod,並把它再次文本,您只需設置TransformationMethodnull,這樣一來,不轉型將應用於文本。

希望這可以幫助你。