用到ToggleButton开、关(即选中、未选中)的两种状态,来切换
布局文件activity_login:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/loginbg"
>
<!-- 界面分成六个部分,用六个LinearLayout布局
1.图标:软件公司图标 2.用户名输入 3.密码输入 4.记住密码选择框、自动登录选择框
5.登录按钮 6.底部软件信息版本说明
-->
<!--1.图标:软件公司图标 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="70dp"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/hwlog2"
/>
</LinearLayout>
<!--2.用户名输入 -->
<LinearLayout
android:layout_width="260dp"
android:layout_height="wrap_content"
android:paddingTop="60dp"
android:layout_gravity="center"
>
<EditText android:id="@+id/userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户名"/>
</LinearLayout>
<!--3.密码输入 -->
<RelativeLayout
android:layout_width="260dp"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:layout_gravity="center"
>
<EditText android:id="@+id/passWord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"
android:hint="请输入密码"/>
<ToggleButton
android:id="@+id/showPassWord"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/passWord"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@android:color/transparent"
android:button="@drawable/switch_btn"
android:checked="false"
android:textOff=""
android:textOn="" />
</RelativeLayout>
<!--4.记住密码选择框、自动登录选择框 -->
<!--5.登录按钮 -->
<!--6.底部软件信息版本说明 -->
</LinearLayout>
activity文件loginActivity:
package com.example.hanwayoa;
import java.net.PasswordAuthentication;
import android.app.Activity;
import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ToggleButton;
public class LoginActivity extends Activity implements OnClickListener {
private ToggleButton showpassword;//明文显示或密文显示密码
private EditText password;//密码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
showpassword=(ToggleButton)findViewById(R.id.showPassWord);
password=(EditText) findViewById(R.id.passWord);
showpassword.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v==showpassword){//明文或密文显示密码
//根据ToggleButton的状态来明文或密文方式显示密码
if(showpassword.isChecked()){//如果ToggleButton显示选中显示状态,明文显示密码
LoginActivity.this.password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}else{//如果ToggleButton不是选中状态,密文方式显示密码
LoginActivity.this.password.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}
}
}
关键是这两个方法:
隐藏:
LoginActivity.this.password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
显示:
LoginActivity.this.password.setTransformationMethod(PasswordTransformationMethod.getInstance());