Android: implementa una página de inicio de sesión (kotlin)

 

Preparación

Primero, asegúrese de tener instalado Android Studio. Si aún no lo ha instalado, visite el sitio web oficial de Android Studio para descargarlo e instalarlo.

requisito previo

- Instalar y configurar Android Studio

Android Studio Electric Eel | 2022.1.1 Patch 2
Build #AI-221.6008.13.2211.9619390, built on February 17, 2023
Runtime version: 11.0.15+0-b2043.56-9505619 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 6
Registry:
    external.system.auto.import.disabled=true
    ide.text.editor.with.preview.show.floating.toolbar=false
    ide.balloon.shadow.size=0

Non-Bundled Plugins:
    com.intuit.intellij.makefile (1.0.15)
    com.github.setial (4.0.2)
    com.alayouni.ansiHighlight (1.2.4)
    GsonOrXmlFormat (2.0)
    GLSL (1.19)
    com.mistamek.drawablepreview.drawable-preview (1.1.5)
    com.layernet.plugin.adbwifi (1.0.5)
    com.likfe.ideaplugin.eventbus3 (2020.0.2)

gradle-wrapper.propiedades

#Tue Apr 25 13:34:44 CST 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

build.gradle(:Proyecto)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.3.1' apply false
    id 'com.android.library' version '7.3.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
}

ajuste.gradle

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.name = "logindemo"
include ':app'

- Comprensión básica del lenguaje Kotlin.

crear nuevo proyecto

Primero, abra Android Studio y cree un nuevo proyecto. Selecciona la plantilla "Actividad vacía" y dale al proyecto un nombre como "LoginDemo". A continuación, seleccione Kotlin como lenguaje de desarrollo y asegúrese de seleccionar la versión mínima adecuada del SDK.

 Diseño de la pantalla de inicio de sesión En el archivo `activity_main.xml`, crearemos una pantalla de inicio de sesión simple. La interfaz consta de dos cuadros de entrada (para nombre de usuario y contraseña) y un botón de inicio de sesión.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/usernameEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="用户名"
        android:inputType="text" 
        app:layout_constraintTop_toTopOf="parent"/>

    <EditText
        android:id="@+id/passwordEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="密码"
        android:inputType="textPassword" 
        app:layout_constraintTop_toBottomOf="@+id/usernameEditText"/>

    <Button
        android:id="@+id/loginButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录" 
        app:layout_constraintTop_toBottomOf="@+id/passwordEditText"/>

</androidx.constraintlayout.widget.ConstraintLayout>

 

Manejo de la lógica de inicio de sesión En el archivo `MainActivity.kt`, manejaremos el evento de clic del botón de inicio de sesión. Primero, obtenga una referencia al cuadro de entrada y al botón, luego configure un detector de clics para el botón.

package com.example.logindemo

import android.content.SharedPreferences
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    private lateinit var usernameEditText: EditText
    private lateinit var passwordEditText: EditText
    private lateinit var loginButton:Button
    private var sharedPreferences: SharedPreferences ?= null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        usernameEditText = findViewById(R.id.usernameEditText)
        passwordEditText = findViewById(R.id.passwordEditText)
        loginButton = findViewById(R.id.loginButton)

        sharedPreferences = getSharedPreferences("LoginDemo", MODE_PRIVATE)

        loginButton.setOnClickListener {
            val username = usernameEditText.text.toString()
            val password = passwordEditText.text.toString()

            if (validateInput(username, password)) {
                saveUserCredentials(username, password)
                Toast.makeText(this, "登录成功!", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(this, "请输入有效的用户名和密码!", Toast.LENGTH_SHORT).show()
            }
        }
    }

    private fun validateInput(username: String, password: String): Boolean {
        return username.isNotEmpty() && password.isNotEmpty()
    }

    private fun saveUserCredentials(username: String, password: String) {
        val editor = sharedPreferences?.edit()
        editor?.putString("username", username)
        editor?.putString("password", password)
        editor?.apply()
    }
}

En el código anterior, primero obtenemos la referencia del cuadro de entrada y el botón. Luego, creamos una instancia de SharedPreferences para almacenar la información de inicio de sesión del usuario. A continuación, configuramos un detector de clics para el botón de inicio de sesión. Cuando el usuario hace clic en el botón de inicio de sesión, verificamos que el nombre de usuario y la contraseña ingresados ​​​​son válidos. Si es válido, guardamos la información de inicio de sesión del usuario en SharedPreferences y mostramos un mensaje de aviso. Si la entrada no es válida, solicitamos al usuario que ingrese un nombre de usuario y una contraseña válidos.

Aprenda a implementar la funcionalidad de inicio de sesión en las aplicaciones de Android. Usamos el lenguaje Android Studio y Kotlin para el desarrollo, y presentamos cómo usar SharedPreferences para almacenar información del usuario. Este es solo un ejemplo simple. En aplicaciones reales, es posible que la información del usuario deba enviarse al servidor para su verificación.

Por supuesto, si cree que la encapsulación de SharedPreferences no es suficiente y es engorrosa de usar, también puede usar la herramienta de código abierto MMKV de Tencent. La clase de herramienta altamente encapsulada puede completar más fácilmente las funciones que necesita.

Supongo que te gusta

Origin blog.csdn.net/mozushixin_1/article/details/130362814
Recomendado
Clasificación