Android Studio|使用SqLite实现一个简单的登录注册功能

这篇具有很好参考价值的文章主要介绍了Android Studio|使用SqLite实现一个简单的登录注册功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本学期学习了Android Studio这门课程,本次使用Android Studio自带的sqlite数据库实现一个简单的登录注册功能。

目录

一、了解什么是Android Studio?

二、了解什么是sqlite?

三、创建项目文件

 四、创建活动文件和布局文件。

五、创建数据库,连接数据库

 六、创建实体类,实现注册功能

七、实现登录功能

八、总结


一、了解什么是Android Studio?

Android Studio 是开发 Android 应用程序的官方 IDE,基于 Intellij IDEA。你可以从官网Android Studio下载下载最新版本的 Android Studio。在项目开始之前,请确认已经安装好Android Studio和完成相关的环境配置。

二、了解什么是sqlite?

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。他有诸多的优点。

  1. 轻量级:SQLite是一个嵌入式数据库,它以一个独立的、自给自足的文件形式存在,不需要额外的服务器进程或配置。它的库文件大小较小,占用的系统资源较少,适合在资源有限的环境中使用。

  2. 易于使用:SQLite提供了简单的API和易于理解的SQL查询语言,使得开发人员可以轻松地进行数据库操作。它使用标准的SQL语法,并提供了广泛的查询、插入、更新和删除功能。

  3. 高性能:由于SQLite是一个本地文件数据库,它可以直接访问数据,而无需网络连接。这使得数据库操作的速度非常快,并且可以在本地执行复杂的查询和事务。

  4. 跨平台支持:SQLite数据库可以在多个操作系统和平台上运行,包括Windows、Linux、Mac和移动设备平台(如Android和iOS)。这使得开发人员可以使用相同的数据库技术来开发跨平台的应用程序。

想要学习sqlite数据库的可以点击了解sqlite教程,本文不做过多介绍。

三、创建项目文件

打开Android Studio,创建一个新的空白项目。

androidstudio登录注册数据库,sqlite,android studio,数据库

接下来设置应用程序的基本信息,如应用程序名和包名,指定程序的安卓版本等。

androidstudio登录注册数据库,sqlite,android studio,数据库

设置完成后点击完成,完成一个空项目的创建。 

 四、创建活动文件和布局文件。

在项目工程结构下的Java目录下的包含你项目名的软件包下新建活动文件。一般项目会自带有一个默认活动。(叫这个名字👉MainActivity)

androidstudio登录注册数据库,sqlite,android studio,数据库

 右击软件包,创建一个名为RegisterActivity的活动,勾选第一个选项,创建完成活动后Android Studio会自动帮你创建对应的一个布局文件。

androidstudio登录注册数据库,sqlite,android studio,数据库

androidstudio登录注册数据库,sqlite,android studio,数据库

 androidstudio登录注册数据库,sqlite,android studio,数据库

 因为刚创建出来的布局文件是空白的,需要我们自己添加按钮或者文本,以下是一个布局页面的示例,可以根据自己需求更改。布局元素自行了解,不再过多叙述。 

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".RegisterActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="注册"
        android:textSize="40dp"
        android:layout_gravity="center"
        />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:textSize="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="3dp"
            />
        <EditText
            android:id="@+id/rusername"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="请输入你的用户名"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:textSize="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="3dp"
            />
        <EditText
            android:id="@+id/rpassword"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="请入你的密码"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话:"
            android:textSize="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="3dp"
            />
        <EditText
            android:id="@+id/rphone"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="请输入你的电话"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="邮箱:"
            android:textSize="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="3dp"
            />
        <EditText
            android:id="@+id/remil"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="请输入你的邮箱"/>
    </LinearLayout>
    <Button
        android:onClick="register"
        android:id="@+id/mregister"
        android:layout_gravity="center"
        android:layout_marginTop="40dp"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="注册"
        />
    <Button android:id="@+id/fh" android:onClick="gobak"
        android:layout_gravity="center"
        android:layout_marginTop="40dp"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="返回登录"
        />

</LinearLayout>

 注册页面有了当然少不了登录页面,用上述的方法创建一个登录页面,同样给出一个示例页面。

login_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".LoginActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="登录"
        android:textSize="50dp"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:textSize="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="3dp"
            />
        <EditText
            android:id="@+id/lusername"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="请输入你的用户名"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:textSize="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="3dp"
            />
        <EditText
            android:id="@+id/lpassword"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="请输入你的密码"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="300dp"
        >
        <Button
            android:id="@+id/login"
            android:layout_width="150dp"
            android:layout_height="55dp"
            android:layout_marginLeft="30dp"
            android:textSize="20dp"
            android:text="登录"></Button>
        <Button
            android:id="@+id/register"
            android:onClick="GoRegister"
            android:layout_width="150dp"
            android:layout_height="55dp"
            android:textSize="20dp"
            android:layout_marginLeft="60dp"
            android:text="注册"
            >
        </Button>

    </LinearLayout>

</LinearLayout>

五、创建数据库,连接数据库

在活动目录包下创建一个名为MySQLiteOpenHelper的java类,注意是创建Java类不是活动类。并且继承SQLiteOpenHelper,后续我们在这个类中实现数据库的相关操作。

androidstudio登录注册数据库,sqlite,android studio,数据库

MySQLiteOpenHelper.java

package com.example.androidword;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

    //数据库名字
    private static final String DB_NAME = "User.db";
    //创建用户表
    private static final String CREATE_USER = "create table user(id integer primary key autoincrement," +
            "username varchar(30)," +
            "password varchar(30)," +
            "phone varchar(30)," +
            "emil varchar(30))";

    //运行程序时,Android Studio帮你创建数据库,只会执行一次
    public MySQLiteOpenHelper(@Nullable Context context) {
        super(context,DB_NAME,null,1);
    }

    //创建数据表
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(CREATE_USER);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

 六、创建实体类,实现注册功能

在活动目录包下新建User类,用它当作我们此次项目的实体类,也就是数据库表中的字段。

User.java

package com.example.androidword;


//创建user类,并添加属性和构造方法、get、set方法
public class User {
    public String username;
    public String password;
    public String phone;
    public String emil;

    public User(){}
    public User(String username, String password, String phone, String emil) {
        this.username = username;
        this.password = password;
        this.phone = phone;
        this.emil = emil;
    }
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmil() {
        return emil;
    }

    public void setEmil(String emil) {
        this.emil = emil;
    }

}

接着我们去MySQLiteOpenHelper类中添加注册的方法,即把我们输入的数据保存在数据库中(插入)。

    public long register(User u){
        SQLiteDatabase db = getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("username ",u.getUsername());
        cv.put("password",u.getPassword());
        cv.put("phone",u.getPhone());
        cv.put("emil",u.getEmil());
        long users = db.insert("user",null,cv);
        return users;
    }

在RegisterActivity活动类中我们还要编写相关的后台代码,如获取输入框,注册按钮等。

package com.example.androidword;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        //初始化获取的布局元素
        find();
    }
    //获取注册按钮,预先定义,下方输入框同理
    private Button register;
    private EditText username,password,phone,emil;

    //使用MySQLiteOpenHelper类中的方法
    private MySQLiteOpenHelper mySQLiteOpenHelper;

    //控制注册按钮点击完后不给点击了
    boolean flag = false;

    //跳转回登录页面
    public void gobak(View view){
        Intent gl = new Intent(RegisterActivity.this,LoginActivity.class);
        startActivity(gl);
    }
    //初始化获取的布局元素
    public void find(){
        username = findViewById(R.id.rusername);
        password = findViewById(R.id.rpassword);
        phone = findViewById(R.id.rphone);
        emil = findViewById(R.id.remil);
        register = findViewById(R.id.mregister);
        register.setOnClickListener(this);
    }
    //注册逻辑实现
    public void register(){
        String ru = username.getText().toString();
        String rps = password.getText().toString();
        String rph = phone.getText().toString();
        String rem = emil.getText().toString();
        User user = new User(ru,rps,rph,rem);
        if(ru.equals("")){
            Toast.makeText(this, "账号不能为空!", Toast.LENGTH_SHORT).show();
        } else if (rps.equals("")) {
            Toast.makeText(this, "密码不能为空!", Toast.LENGTH_SHORT).show();
        } else if (rph.equals("")) {
            Toast.makeText(this, "电话不能为空!", Toast.LENGTH_SHORT).show();
        }else if(rem.equals("")){
            Toast.makeText(this, "邮箱不能为空!", Toast.LENGTH_SHORT).show();
        }else{
            long r1 = mySQLiteOpenHelper.register(user);
            register.setEnabled(false);
            register.setTextColor(0xFFD0EFC6);
            if(r1!=-1){
                Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(this, "注册失败!", Toast.LENGTH_SHORT).show();
            }
        }
    }

    //监听按钮点击事件
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.mregister:
                register();
                break;
        }
    }

    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {
        super.onPointerCaptureChanged(hasCapture);
    }
}

运行程序,观察数据库是否成功创建,注册信息能否添加进数据库。

androidstudio登录注册数据库,sqlite,android studio,数据库

 androidstudio登录注册数据库,sqlite,android studio,数据库

 到此注册功能已经基本实现,更多的逻辑判断可以自行添加。接下来实现登录功能。

七、实现登录功能

MySQLiteOpenHelper类中添加登录的方法和根据用户名找到当前用户的方法。

 //登录方法实现
    public boolean login(String username,String password){
        SQLiteDatabase db = getWritableDatabase();
        boolean result = false;
        Cursor users = db.query("user", null, "username like?", new String[]{username}, null, null, null);
        if(users!=null){
            while (users.moveToNext()){
                @SuppressLint("Range") String username1 = users.getString(users.getColumnIndex("username"));
                Log.i("users", "login: "+username1);
                String password1 = users.getString(2);
                Log.i("users", "login: "+password1);
                result = password1.equals(password);
                return result;
            }
        }
        return false;
    }

    //根据用户名查找当前登录用户信息
    public User select(String username){
        SQLiteDatabase db = getWritableDatabase();
        User SelectUser = new User();
        Cursor user = db.query("user", new String[]{"username", "phone", "emil"}, "username=?", new String[]{username}, null, null, null);
        while(user.moveToNext()){
            @SuppressLint("Range") String uname =user.getString(user.getColumnIndex("username"));
            @SuppressLint("Range") String phone = user.getString(user.getColumnIndex("phone"));
            @SuppressLint("Range") String emil = user.getString(user.getColumnIndex("emil"));
            SelectUser.setUsername(uname);
            SelectUser.setPhone(phone);
            SelectUser.setEmil(emil);
        }
        user.close();
        return SelectUser;
    }

接下来同上一步,到LoginActivity活动类中找到登录按钮,输入框等布局元素,并实现登录功能。

package com.example.androidword;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
    private Button register,login;
    private EditText username,password;
    private MySQLiteOpenHelper mySQLiteOpenHelper;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        find();
    }

    public void find(){
        login = findViewById(R.id.login);
        register = findViewById(R.id.register);
        username = findViewById(R.id.lusername);
        password = findViewById(R.id.lpassword);
        login.setOnClickListener(this);
        register.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        switch (id){
            case R.id.login:
                String n = username.getText().toString();
                String p = password.getText().toString();
                if(n.equals("")){
                    Toast.makeText(this, "请输入账号", Toast.LENGTH_SHORT).show();
                }else if(p.equals("")){
                    Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
                }else{
                    boolean login = mySQLiteOpenHelper.login(n, p);
                    if(login){
                        Toast.makeText(this, "登录成功!", Toast.LENGTH_SHORT).show();
                        User select = mySQLiteOpenHelper.select(n);
                        Intent home = new Intent(LoginActivity.this,MainActivity.class);
                        Bundle bundle = new Bundle();
                        bundle.putString("username",select.username);
                        bundle.putString("emil",select.emil);
                        bundle.putString("phone",select.phone);
                        home.putExtras(bundle);
                        username.setText("");
                        password.setText("");
                        startActivity(home);
                    }else {
                        Toast.makeText(this, "账号或密码错误,请重新输入", Toast.LENGTH_SHORT).show();
                        password.setText("");
                    }
                }
                break;
            case R.id.register:
                Intent re = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(re);
                break;
        }
    }

    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {
        super.onPointerCaptureChanged(hasCapture);
    }
}

重新启动应用,观察登录功能是否已经实现,上述例子中我添加了一个校验通过跳转另一个页面的方法来检验是否登录成功。

androidstudio登录注册数据库,sqlite,android studio,数据库

androidstudio登录注册数据库,sqlite,android studio,数据库 

 到此,我们已经实现了一个简单的注册和登录功能。

八、总结

学习Android Studio是学习Android应用开发的重要一步。下面是一个Android Studio课程学习的总结:

1. 熟悉界面和基本功能:开始学习之前,熟悉Android Studio的用户界面和各个功能区域。了解项目结构、编辑器、调试工具等基本功能,掌握常用的快捷键和操作技巧。

2. 学习Java或Kotlin语言:Android Studio主要使用Java或Kotlin语言进行开发。学习Java或Kotlin的基本语法、面向对象编程概念和常用的API。

3. 掌握Android框架和组件:了解Android的基本组件和框架,如Activity、Fragment、Intent、布局、资源管理等。学习如何创建和管理这些组件,以及它们之间的交互。

4. 学习布局设计和UI开发:掌握Android布局设计,使用XML和代码创建用户界面。了解常用的布局类型(如线性布局、相对布局、帧布局等),并学习如何使用UI控件(如TextView、Button、ImageView等)和样式化组件。

5. 数据存储和处理:学习如何在Android应用中存储和处理数据。了解SQLite数据库数据存储技术,以及与网络通信、数据解析和持久化相关的技术。文章来源地址https://www.toymoban.com/news/detail-738920.html

到了这里,关于Android Studio|使用SqLite实现一个简单的登录注册功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio编写一个简单的登录界面

    1首先先创建一个空的activity项目,接着设置自己的项目名称,勾选上lacuncher 创建成功后点开 manifests 把刚刚创建的文件名下面的 intent-filter 这一行全部删除 然后点开res,复制一张图片,右键drawable点击粘贴,这里放的是图片资源,用于放置登录头像 然后点开layout文件,开始编

    2024年04月15日
    浏览(44)
  • 在 Android Studio 中创建一个简单的 QQ 登录界面

            打开 Android Studio,选择 \\\"Start a new Android Studio project\\\",然后填写应用程序名称、包名和保存路径等信息。接下来,选择 \\\"Phone and Tablet\\\" 作为您的设备类型,然后选择 \\\"Empty Activity\\\" 作为您的 Activity 模板。         在 Android Studio 中,布局文件用于指定应用程序的用

    2024年02月07日
    浏览(53)
  • 使用QT制作一个简单的登录-注册界面

    1、作业需求   2、实现过程 1)Widget.h文件 2)Widget.cpp文件

    2024年02月11日
    浏览(45)
  • 使用原生js写一个简单的注册登录页面

    目录 1.注册页面 2.登录页面 1.首先是我们的注册页面 这是我们的html骨架  这是css样式 下面就是我们注册的js封装了         这里的函数调用直接写到了html里面的button事件上面了 这就是我的注册页面 ,当然各位要是觉得不好看也可以换成自己喜欢的图片; 2.登陆页面      

    2024年02月11日
    浏览(68)
  • 使用Android Studio创建第一个小项目(登录页面)

    仅供参考,学习使用 我这里了就直接创建一个模块了 然后选择Empty Activity 接下来直接点finish 我没有艺术细胞,所以画的比较差,大家不要介意 点击下面我图片的箭头处 然后点击split ####删掉我图片中的内容 然后点回design 点击旁边的TextView,拖动到方框中来 接着我们让这个

    2024年02月07日
    浏览(55)
  • 【安卓app开发一】Android Studio + Bmob后端云实现注册&登录账号、密码找回、意见反馈及数据可视化

    目录 前言 概览 Bmob后端云介绍 Bmob后端云与Android Studio配置 一、Bmob后端云  二、Android Studio配置 工具类 一、User类 二、Suit类 三、Code类 实现类  一、登录代码  二、注册代码  三、找回密码代码  四、想法反馈代码         本项目尚在开发阶段,主要针对的是安卓用户,通

    2024年02月08日
    浏览(58)
  • Android Studio心得-创建登录注册项目

            首先先了解AndroidStudio是什么:Android Studio是一个由谷歌开发的Android应用程序开发环境,用于开发Android应用程序。它基于JetBrains IntelliJIDEA软件,并包含了许多定制化功能,包括易于使用的分析工具、内存分析工具和代码编辑器等,支持Java、Kotlin等多种编程语言。An

    2024年02月05日
    浏览(58)
  • 【Android Studio】安卓APP期末作品记录之连接sqlite数据库以及简单的sqlite增删改查

    期末作品要求使用数据库,我自己折腾了一会,又看了很多博主发的文章,终于成功了,特此记录:使用SQLiteDatabase和SQLiteOpenHelper连接已有sqlite数据库。 第一步,导入sqlite数据库 因为我已经创建好了一个sqlite数据库,所以第一步得将我的数据库导入项目中 在app — src — ma

    2024年02月03日
    浏览(57)
  • Android Studio:一个简单的计算器app的实现过程<初级>

    📌Android Studio 专栏正在持续更新中,案例的原理图解析、各种模块分析💖这里都有哦,同时也欢迎大家订阅专栏,获取更多详细信息哦✊✊✊ ✨个人主页:零小唬的博客主页 🥂欢迎大家 👍点赞 📨评论 🔔收藏 ✨作者简介:20级计算机专业学生一枚,来自宁夏,可能会去

    2024年02月01日
    浏览(106)
  • Android Studio —— Activity组件(课后作业:登录和注册App)

    运行效果图   主界面(初始),注册界面,登录界面,主界面(注册和登录之后) 实现步骤 1.设计主界面,编写activity_main.xml 注:(1) 按钮的格式是自己设计的,如下 注:(2)需编写strings.xml 2.创建两个activity(会自动创建对应的layout布局文件)   3.设计登录和注册界面,编写

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包