package cc.c;
import android.app.Activity;
import android.os.Bundle;
import android.text.Selection;
import android.text.Spannable;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
/**
* Demo描述:
* 文本输入框(EditText)切换密码的显示与隐藏
*
* 参考资料:
* 1
http://developer.android.com/reference/android/text/method/HideReturnsTransformationMethod.html * 2
http://developer.android.com/reference/android/text/method/PasswordTransformationMethod.html * Thank you very much
*/
public class MainActivity extends Activity {
private Button mSwitchButton;
private EditText mPasswordEditText;
private boolean isHidden=true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mSwitchButton=(Button) findViewById(R.id.button);
mPasswordEditText=(EditText) findViewById(R.id.editText);
mSwitchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isHidden) {
//设置EditText文本为可见的
mPasswordEditText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
} else {
//设置EditText文本为隐藏的
mPasswordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
isHidden = !isHidden;
mPasswordEditText.postInvalidate();
//切换后将EditText光标置于末尾
CharSequence charSequence = mPasswordEditText.getText();
if (charSequence instanceof Spannable) {
Spannable spanText = (Spannable) charSequence;
Selection.setSelection(spanText, charSequence.length());
}
}
});
}
}