上一篇
安卓开发实例
- 行业动态
- 2025-04-21
- 3
安卓登录界面开发实例
本实例演示如何开发一个简单的安卓登录界面,包含用户名和密码输入框、登录按钮,以及本地逻辑验证功能,通过该案例可掌握 布局设计、控件交互、事件处理 等基础开发技能。
环境搭建
安装 Android Studio
- 下载并安装最新版 Android Studio(需配置 JDK 和 SDK)。
- 启动后选择 “Start a new Android Studio project”。
创建新项目
- Project Name: LoginDemo
- Template: Empty Activity(无需导航栏)
- Language: Kotlin(或 Java)
- Minimum API Level: API 21(Android 5.0)
项目结构
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() } } } }
关键逻辑说明:
- 控件绑定:通过
findViewById
获取布局中的控件实例。 - 事件监听:为按钮设置点击事件,触发验证逻辑。
- 数据校验:检查输入是否为空,并匹配预设的用户名密码(
admin
/123456
)。
测试与运行
- 运行应用:点击 Android Studio 的 “Run” 按钮,选择模拟器或真机运行。
- 测试用例:
- 用例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 存储用户输入的用户名和密码:
- 在
onCreate
中读取保存的数据:val prefs = getSharedPreferences("login", MODE_PRIVATE) etUsername.setText(prefs.getString("username", "")) etPassword.setText(prefs.getString("password", ""))
- 登录成功后保存数据:
prefs.edit() .putString("username", username) .putString("password", password) .apply()