验证硬编码密码



我用的是Kotlin。

我有一个存储的密码(val password = 1111)。我有一个editText (passcode),它需要一个"numberPassword"输入。我希望用户输入代码,如果它匹配,我将做一些事情。

I have try:

if (passcode.equals(1111)) { //do something }

if (passcode = password) { //do something }

if (passcode.text.toString() == password) { //do something }

if (passcode == "1111") { //do something }

…还有很多其他版本在整型和字符串之间来回转换

这应该非常简单,因为用户要么是对的,要么是错的。我猜它与字符串/int的东西。谢谢你的帮助!

只是尝试:

<EditText
android:id="@+id/passcode"
android:layout_width="120dp"
android:layout_height="75dp"
android:layout_gravity="center_horizontal"
android:textAlignment="center"
android:hint="@string/zeros"
android:drawableStart="@drawable/ic_key"
android:inputType="numberPassword"
android:maxLength="4"
android:maxLines="1"
android:textColor="@color/black"
android:textColorHint="@color/light_gray"
android:textCursorDrawable="@null"
android:textSize="35sp"
android:singleLine="true"
android:autofillHints="true" />

private var passcode: EditText? = null private var password: Int = 1111

view.submitButton?.setOnClickListener {

if (passcode?.text.toString() == password.toString()){

Toast.makeText(this@SplashScreen, "Valid", Toast.LENGTH_LONG).show()
} else {
Toast.makeText(this@SplashScreen, "Invalid", Toast.LENGTH_LONG).show()

}
}

结果:当我在edittext

输入1111时无效

您的密码变量未初始化,因为它仍然为空。

像这样设置:

private var passcode : EditText? = findViewById<EditText>(R.id.passcode)

您正在将整个小部件与变量密码进行比较。您需要的是将密码变量与passcode.text.toString()进行比较这样的:

if (passcode.text.toString() == password.toString()){
Toast.makeText(this@MainActivity, "Correct Passcode!", Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(this@MainActivity, "Wrong Passcode!", Toast.LENGTH_SHORT).show()
}

最新更新