移动应用开发:Android Studio实现简易注册页(数据存放以SharedPreferences形式)

文章目录

  • 简介
  • [步骤 1:创建新活动](#步骤 1:创建新活动)
  • [步骤 2:设计UI布局](#步骤 2:设计UI布局)
  • [步骤 3:编写活动代码](#步骤 3:编写活动代码)
  • [步骤 4:运行应用程序](#步骤 4:运行应用程序)
  • [步骤 5:查看存放数据](#步骤 5:查看存放数据)

简介

使用Android Studio编写的简单Android 注册应用程序,该应用程序包含一个注册界面,具有账号和密码两个文本框,以及退出和提交按钮。按下退出按钮将退出整个程序,按下提交按钮将输入的账号和密码以SharedPreferences的形式存放在模拟器中。

UI界面效果图

好的,以下是一个使用Android Studio编写的简单Android应用程序示例,该应用程序包含一个登录界面,具有账号和密码两个文本框,以及退出和提交按钮。单击退出按钮将退出整个程序,按下提交按钮将根据给定的账号和密码显示相应的消息。

步骤 1:创建新活动

  1. 右击"app",选择"New"------"Activity"------选择"Empty Activity"。

  2. 配置应用名称、包名、保存位置等,然后点击"Finish"。

步骤 2:设计UI布局

打开res/layout/activity_register.xml文件,并添加以下内容以设计登录界面:

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    tools:context=".RegisterActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="120dp"
        android:layout_marginBottom="50dp"
        android:layout_gravity="center"
        android:text="注册页"
        android:textSize="35dp"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_gravity="center"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号:"
            android:textSize="20dp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/etUsername"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入账号"
            android:inputType="text" />
    </LinearLayout>

    <LinearLayout
        android:layout_gravity="center"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:text="密码:"
            android:textSize="20dp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/etPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:inputType="textPassword" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="380dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnSubmit"
            android:layout_width="80dp"
            android:layout_height="50dp"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="70dp"
            android:text="提交" />

        <Button
            android:id="@+id/btnExit"
            android:layout_width="80dp"
            android:layout_height="50dp"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="50dp"
            android:text="退出" />
    </LinearLayout>

    <TextView
        android:id="@+id/tvMessage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:gravity="center"
        android:visibility="gone" />

</LinearLayout>

步骤 3:编写活动代码

打开RegisterActivity.java文件,并添加以下代码:

java 复制代码
package com.example.mycontacts;

import androidx.appcompat.app.AppCompatActivity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class RegisterActivity extends AppCompatActivity {

    private EditText etUsername;
    private EditText etPassword;
    private Button btnSubmit;
    private Button btnExit;
    private TextView tvMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        etUsername = findViewById(R.id.etUsername);
        etPassword = findViewById(R.id.etPassword);
        btnSubmit = findViewById(R.id.btnSubmit);
        btnExit = findViewById(R.id.btnExit);
        tvMessage = findViewById(R.id.tvMessage);

        btnSubmit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = etUsername.getText().toString();
                String password = etPassword.getText().toString();

                // 保存账号和密码到SharedPreferences
                SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
                editor.putString("user",username);
                editor.putString("pass",password);
                editor.apply();
            }
        });

        btnExit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish(); // 关闭当前活动,退出应用(如果只有一个活动)
                // 如果需要完全退出应用(包括所有活动),可以使用以下代码
                // System.exit(0);
            }
        });
    }
}

注意事项

  • System.exit(0); 可以完全退出应用程序,包括所有活动,但在Android中通常不推荐使用,因为Android有自己的活动生命周期管理。
  • finish(); 只关闭当前活动。如果这是应用程序的唯一活动,那么它将退出应用程序。

步骤 4:运行应用程序

  1. 启动Android模拟器。

  2. 点击Android Studio工具栏上的"Run"按钮(绿色三角形)。

  3. 在设备或模拟器上查看应用程序,输入账号和密码并点击按钮进行测试。

步骤 5:查看存放数据

  1. 在模拟器管理窗口下,单击右下角的Device File Explore,打开模拟器文件管理器,进入到data/data目录。

  2. 找到模拟器目录data/data/下与项目包名相同的目录。

  3. 在目录:/data/data/com.example.mycontacts/shared_prefs/data.xml;即可查看文件()。

注意事项

  • 如果无法直接打开data.xml文件,是因为没有权限,此时关闭Android Studio程序,以管理员方式启动Android Studio即可正常打开了。
相关推荐
liang_jy7 小时前
Android SparseArray
android·源码
liang_jy7 小时前
Activity 启动流程扩展篇(一)—— startActivityInner 任务决策全解析
android·源码
NPE~8 小时前
[App逆向]脱壳实战
android·教程·逆向·android逆向·逆向分析
木易 士心9 小时前
别再只会用 drawCircle 了!一文搞懂 Android Canvas 底层机制
android
AtOR CUES10 小时前
MySQL——表操作及查询
android·mysql·adb
怣疯knight11 小时前
安卓App无法增加自定义图片作为图标功能
android
jinanwuhuaguo13 小时前
OpenClaw联邦之心——从孤岛记忆到硅基集体潜意识的拓扑学革命(第二十三篇)
android·人工智能·kotlin·拓扑学·openclaw
读书札记202214 小时前
visual studio 调试技巧总结
ide·visual studio
Gary Studio14 小时前
安卓HAL C++基础-命名域
android
诸神黄昏EX15 小时前
Android Google XTS
android