Kotlin implementiert die Android-Anmeldeschnittstelle
1 Layout-Design, Passwortanzeige und -ausblendung
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center"
android:background="#B50A35"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText
android:id="@+id/textOfName"
android:layout_marginTop="100dp"
android:layout_width="300dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:hint="请输入用户名"
android:background="@color/white"
android:drawableLeft="@drawable/ic_baseline_group_24"
android:drawablePadding="10dp"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10dp"
android:gravity="center"
>
<EditText
android:id="@+id/textOfPassWord"
android:layout_width="278dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:background="@color/white"
android:drawableLeft="@drawable/ic_baseline_lock_24"
android:drawablePadding="10dp"
android:hint="请输入密码"
android:inputType="textPassword"
/>
<ImageView
android:id="@+id/showPassword"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/ic_baseline_visibility_off_24"
android:background="@color/white"
android:onClick="showPassword"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center"
>
<TextView
android:id="@+id/mess"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#DDC91F"
android:gravity="center"
/>
<TextView
android:id="@+id/forgetPW"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#DDC91F"
android:onClick="forgetPassWord"
android:gravity="center"
/>
<TextView
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#DDC91F"
android:text="第一次登录?点击注册"
android:onClick="register"
android:gravity="center"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">
<Button
android:id="@+id/surbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sureBtn1"
android:text="确认"/>
<Button
android:id="@+id/btnCan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:text="取消"/>
</LinearLayout>
</LinearLayout>
2 Bindung des Hörereignisses des Hauptprogramms
import android.content.Intent
import android.graphics.drawable.Drawable
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.method.HideReturnsTransformationMethod
import android.text.method.PasswordTransformationMethod
import android.view.View
import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView
class MainActivity : AppCompatActivity() {
var count = 0;
var showPassword = false
lateinit var name:EditText
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
name =findViewById<EditText>(R.id.textOfName)
name.setText(intent?.getStringExtra("username"))
}
fun sureBtn1(view: View) {
var name =findViewById<TextView>(R.id.textOfName)
var password = findViewById<EditText>(R.id.textOfPassWord)
var message = findViewById<TextView>(R.id.mess)
var forgetPW=findViewById<TextView>(R.id.forgetPW)
var lockOpen = getDrawable(R.drawable.ic_baseline_lock_open_24)
var text = "${name.text}"
var text1 = "${password.text}"
if ("user" == text && "12345" == text1) {
lockOpen?.setBounds(0, 0, 40, 40)
password.setCompoundDrawables(lockOpen, null, null, null)
var intent = Intent(this@MainActivity, ThanksActivity::class.java)
intent.putExtra("name", text)
startActivity(intent)
} else {
count++
if (count < 10) {
message.setText("密码或用户名有误,你还有${10 - count}次机会")
password.setText("")
forgetPW.setText("忘记密码?点击找回")
} else {
message.setText("已锁定,请在10分钟后重试")
}
}
}
fun forgetPassWord(view: View) {
var intent=Intent(this,ThankAgain::class.java)
startActivity(intent)
}
fun showPassword(view: View) {
var password = findViewById<EditText>(R.id.textOfPassWord)
var eye = getDrawable(R.drawable.ic_baseline_remove_red_eye_24)
var close = getDrawable(R.drawable.ic_baseline_visibility_off_24)
var eyeSet=findViewById<ImageView>(R.id.showPassword)
showPassword = !showPassword
if (showPassword) {
password.transformationMethod = HideReturnsTransformationMethod.getInstance()
password.setSelection(password.text.length)
eyeSet.setImageDrawable(eye)
} else {
password.transformationMethod =PasswordTransformationMethod.getInstance()
password.setSelection(password.text.length)
eyeSet.setImageDrawable(close)
}
}
fun register(view: View) {
startActivity(Intent(this,RegisterActivity::class.java))
}
}