kotlin实现密码显示与隐藏

433 阅读1分钟
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainktActivity">
    <EditText
        android:id="@+id/edt_pw"
        android:inputType="textPassword"
        android:layout_width="200dp"
        android:layout_height="wrap_content"/>
    <Button
        android:onClick="go1"
        android:id="@+id/eye_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>
package com.example.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.InputType
import android.view.View
import android.widget.Button
import android.widget.EditText

class MainktActivity : AppCompatActivity() {

    private var edtPw: EditText? = null
    private var isShow = true
    private var eyeBtn: Button?=null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_mainkt)

        edtPw = findViewById<EditText>(R.id.edt_pw)
        eyeBtn = findViewById<Button>(R.id.eye_btn)

    }

     fun go1(view: View) {
         if (isShow) {
             isShow = false
             //显示
             edtPw?.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)
             eyeBtn?.setBackgroundResource(R.mipmap.ic_launcher)
         } else {
             isShow = true
             //隐藏
             edtPw?.setInputType(InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD)
             eyeBtn?.setBackgroundResource(0)
         }
    }
}