当前位置:首页 > 行业动态 > 正文

安卓开发实例

安卓登录界面开发实例


本实例演示如何开发一个简单的安卓登录界面,包含用户名和密码输入框、登录按钮,以及本地逻辑验证功能,通过该案例可掌握 布局设计控件交互事件处理 等基础开发技能。


环境搭建

  1. 安装 Android Studio

    • 下载并安装最新版 Android Studio(需配置 JDK 和 SDK)。
    • 启动后选择 “Start a new Android Studio project”
  2. 创建新项目

    安卓开发实例  第1张

    • Project Name: LoginDemo
    • Template: Empty Activity(无需导航栏)
    • Language: Kotlin(或 Java)
    • Minimum API Level: API 21(Android 5.0)
  3. 项目结构

    • activity_main.xml:布局文件
    • MainActivity.kt:逻辑代码

界面设计

使用 LinearLayout 垂直排列组件,包含以下控件:

组件类型 ID 属性设置
EditText etUsername hint="请输入用户名", inputType="text", layout_width="match_parent"
EditText etPassword hint="请输入密码", inputType="textPassword", layout_width="match_parent"
Button btnLogin text="登录", layout_width="match_parent"

布局代码(activity_main.xml)

<LinearLayout  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:padding="16dp"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent">  
    <EditText  
        android:id="@+id/etUsername"  
        android:hint="请输入用户名"  
        android:inputType="text"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"/>  
    <EditText  
        android:id="@+id/etPassword"  
        android:hint="请输入密码"  
        android:inputType="textPassword"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"/>  
    <Button  
        android:id="@+id/btnLogin"  
        android:text="登录"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"/>  
</LinearLayout>  

功能实现

逻辑代码(MainActivity.kt)

class MainActivity : AppCompatActivity() {
    private lateinit var etUsername: EditText  
    private lateinit var etPassword: EditText  
    private lateinit var btnLogin: Button  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        // 绑定控件  
        etUsername = findViewById(R.id.etUsername)  
        etPassword = findViewById(R.id.etPassword)  
        btnLogin = findViewById(R.id.btnLogin)  
        // 设置按钮点击事件  
        btnLogin.setOnClickListener {  
            val username = etUsername.text.toString()  
            val password = etPassword.text.toString()  
            if (username.isEmpty()) {  
                Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show()  
                return@setOnClickListener  
            }  
            if (password.isEmpty()) {  
                Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show()  
                return@setOnClickListener  
            }  
            if (username == "admin" && password == "123456") {  
                Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show()  
            } else {  
                Toast.makeText(this, "用户名或密码错误", Toast.LENGTH_SHORT).show()  
            }  
        }  
    }  
}  

关键逻辑说明

  1. 控件绑定:通过 findViewById 获取布局中的控件实例。
  2. 事件监听:为按钮设置点击事件,触发验证逻辑。
  3. 数据校验:检查输入是否为空,并匹配预设的用户名密码(admin / 123456)。

测试与运行

  1. 运行应用:点击 Android Studio 的 “Run” 按钮,选择模拟器或真机运行。
  2. 测试用例
    • 用例1:用户名为空 → 提示 “用户名不能为空”
    • 用例2:密码为空 → 提示 “密码不能为空”
    • 用例3:输入正确账号密码 → 提示 “登录成功”
    • 用例4:输入错误账号密码 → 提示 “用户名或密码错误”

问题与解答

问题1:如何修改验证逻辑,允许任意用户名但密码必须为 “123456”?
解答:只需修改密码校验条件,忽略用户名匹配,将代码改为:

if (password == "123456") {  
    Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show()  
} else {  
    Toast.makeText(this, "密码错误", Toast.LENGTH_SHORT).show()  
}  

问题2:如何实现“记住密码”功能?
解答:使用 SharedPreferences 存储用户输入的用户名和密码:

  1. onCreate 中读取保存的数据:
    val prefs = getSharedPreferences("login", MODE_PRIVATE)  
    etUsername.setText(prefs.getString("username", ""))  
    etPassword.setText(prefs.getString("password", ""))  
  2. 登录成功后保存数据:
    prefs.edit()  
        .putString("username", username)  
        .putString("password", password)  
        .apply()  
0