2011-12-20 62 views
1

我正在學習android,我正在做一個非常簡單的任務。我使用切換按鈕來顯示/隱藏密碼,當我啓動應用程序並單擊切換按鈕時,它可以完美地工作......第一次。Android切換按鈕只能工作一次。我怎樣才能讓它每次都有效?

但是,當我再次點擊它(隱藏或再次顯示密碼)。沒有發生任何事情。我希望有人能幫助我,我會非常感激。順便說一下,如果你想查看它,這是我的代碼。

package com.Amet.Android; 

import android.app.Activity; 
import android.os.Bundle; 
import android.text.InputType; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.ToggleButton; 

public class Texting extends Activity{ 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.text); 

    Button checked = (Button) findViewById(R.id.bChecked); 
    final ToggleButton tgShow = (ToggleButton) findViewById(R.id.tbType); 
    final EditText password = (EditText) findViewById(R.id.etPasswordField); 
    TextView invalid = (TextView) findViewById(R.id.tvInvalid); 

    tgShow.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(tgShow.isSelected()){ 

       password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 
      }else{ 

       password.setInputType(InputType.TYPE_CLASS_TEXT); 
      } 
     } 
    }); 
} 



} 

此外,我試圖替換:這個 「如果」 語句中

password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 

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

但我有一樣的。

回答

0

你試過tgShow.isChecked(),而不是tgShow.isSelected()

0

它看起來像EditTextsetInputType被稱爲復位TransformationMethodnull。此代碼的工作對我來說:

mPasswordField = (EditText)customView.findViewById(R.id.password); 
... 
private void showPassword(boolean show) { 
    int selectionStart = mPasswordField.getSelectionStart(); 
    int selectionEnd = mPasswordField.getSelectionEnd(); 
    mPasswordField.setInputType(show ? 
     InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : 
     InputType.TYPE_TEXT_VARIATION_PASSWORD); 
    mPasswordField.setTransformationMethod(show ? 
     null : 
     PasswordTransformationMethod.getInstance()); 
    mPasswordField.setSelection(selectionStart, selectionEnd); 
} 

根據this thread一個甚至都不需要調用setInputMethod

相關問題