Android实现简单的登录界面

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

该登录界面一共实现三个功能:

1.实现登录

2.实现注册

3.实现记住密码

AndroidManifest.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Smart_Campus"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="standard">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".loginActivity"/>
        <activity android:name=".registeredActivity"/>
    </application>
</manifest>

bean文件中的Account类:

package com.example.smart_campus.bean;

public class Account {
    private int id;
    private String account;
    private String password;

    public Account(int id, String account, String password) {
        this.id = id;
        this.account = account;
        this.password = password;
    }

    public Account() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

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

 db文件夹中的AccountService:

package com.example.smart_campus.db;

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

import com.example.smart_campus.bean.Account;

public class AccountService {
    private DataBaseHelper dataBaseHelper;
    public AccountService(Context context) {
        dataBaseHelper = new DataBaseHelper(context);
    }

    //登录
    public Boolean login(String account, String password){
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
        String sql = "select * from Account where act = ? and pwd = ?";
        Cursor cursor = sqLiteDatabase.rawQuery(sql,new String[]{account,password});
        if (cursor.moveToFirst()) {
            cursor.close();
            return true;
        } else {
            return false;
        }
    }

    //注册
    public Boolean registered(Account account){
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
        String sql = "insert into Account(act,pwd) values(?,?)";
        Object[] obj = {account.getAccount(),account.getPassword()};
        sqLiteDatabase.execSQL(sql,obj);
        return true;
    }
}

db文件夹中的DataBaseHelper:

package com.example.smart_campus.db;

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

import androidx.annotation.Nullable;

public class DataBaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "Smart_Campus.db";
    public static final int DATABASE_VERSION = 1;
    public static final String TABLE_NAME = "Account";
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_Account = "act";
    public static final String COLUMN_Password = "pwd";
    public DataBaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    //创建数据库
    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "CREATE TABLE " + TABLE_NAME +
                " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                      COLUMN_Account + " VARCHAR(20), " +
                      COLUMN_Password + " VARCHAR(20))";
        db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

MainActivity:

package com.example.smart_campus;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.example.smart_campus.db.AccountService;

public class MainActivity extends AppCompatActivity {
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;
    private CheckBox rememberPass;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button_login = findViewById(R.id.login);
        EditText account = findViewById(R.id.account);
        EditText password = findViewById(R.id.password);
        AccountService accountService = new AccountService(this);
        rememberPass = findViewById(R.id.reb_pwd);
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean isRemember = sharedPreferences.getBoolean("remember_password", false);
        if (isRemember) {
            String reb_account = sharedPreferences.getString("account", "");
            String reb_password = sharedPreferences.getString("password", "");
            account.setText(reb_account);
            password.setText(reb_password);
            rememberPass.setChecked(true);
        }
        button_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String act = account.getText().toString();
                String pwd = password.getText().toString();
                Boolean flag = accountService.login(act, pwd);
                if (flag) {
                    editor = sharedPreferences.edit();
                    if (rememberPass.isChecked()) {
                        editor.putBoolean("remember_password", true);
                        editor.putString("account", act);
                        editor.putString("password", pwd);
                    } else {
                        editor.clear();
                    }
                    editor.commit();
                    Intent intent = new Intent(MainActivity.this, loginActivity.class);
                    startActivity(intent);
                } else {
                    Toast.makeText(MainActivity.this, "账号或密码错误!", Toast.LENGTH_SHORT).show();
                }
            }
        });
        Button button_registered = findViewById(R.id.registered);
        button_registered.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, registeredActivity.class);
                startActivity(intent);
            }
        });
    }
}

 loginActivity

package com.example.smart_campus;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class loginActivity extends AppCompatActivity {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
    }
}

registeredActivity

package com.example.smart_campus;

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

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import com.example.smart_campus.bean.Account;
import com.example.smart_campus.db.AccountService;

public class registeredActivity extends AppCompatActivity {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.registered);
    }
    public void myClick(View view){
        if (view.getId() == R.id.reg){
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            EditText new_account = findViewById(R.id.new_account);
            EditText new_pwd = findViewById(R.id.new_pwd);
            EditText re_pwd = findViewById(R.id.re_pwd);
            AccountService accountService = new AccountService(this);
            if (!new_account.getText().toString().isEmpty() && new_pwd.getText().toString().equals(re_pwd.getText().toString())){
                Account account = new Account();
                account.setAccount(new_account.getText().toString());
                account.setPassword(new_pwd.getText().toString());
                accountService.registered(account);
                builder.setTitle("提示");
                builder.setMessage("注册成功");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Intent intent = new Intent(registeredActivity.this, MainActivity.class);
                        startActivity(intent);
                    }
                });
                builder.setNegativeButton("取消",null);
                builder.show();
            } else {
                builder.setTitle("提示");
                builder.setMessage("注册失败!新账号为空或新密码与确认密码不同");
                builder.setNegativeButton("确认",null);
                builder.show();
            }
        }
    }
}

layout文件中的activity_main

<?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"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="Hello Android"
        android:textStyle="bold"
        android:gravity="center"
        android:textSize="30dp"
        android:layout_marginTop="10dp"
        />
    <EditText
        android:id="@+id/account"
        android:layout_width="200dp"
        android:layout_height="48dp"
        android:hint="请输入账号"
        android:layout_gravity="center"
        android:layout_marginTop="120dp"
        />
    <EditText
        android:id="@+id/password"
        android:layout_width="200dp"
        android:layout_height="48dp"
        android:hint="请输入密码"
        android:inputType="textPassword"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        />
    <CheckBox
        android:id="@+id/reb_pwd"
        android:layout_width="100dp"
        android:layout_height="20dp"
        android:layout_marginLeft="100dp"
        android:text="记住密码"
        />
    <Button
        android:id="@+id/login"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="登录"
        android:layout_gravity="center"
        android:onClick="btnClick"
        android:layout_marginTop="10dp"
        />

    <Button
        android:id="@+id/registered"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="注册"
        android:layout_gravity="center"
        android:onClick="btnClick"
        />
</LinearLayout>

layout中的login文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/login_text"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:text="登录成功!"
        android:textSize="40dp"
        android:gravity="center"
        android:layout_gravity="center_vertical"
        />
</LinearLayout>

layout文件中的registered文章来源地址https://www.toymoban.com/news/detail-414909.html

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="Hello Android"
        android:textStyle="bold"
        android:gravity="center"
        android:textSize="30dp"
        android:layout_marginTop="10dp"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="30dp"
        android:text="注册界面"
        android:textStyle="bold"
        android:gravity="center"
        android:textSize="30dp"
        />
    <EditText
        android:id="@+id/new_account"
        android:layout_width="200dp"
        android:layout_height="48dp"
        android:layout_marginTop="30dp"
        android:hint="输入新账号"
        android:layout_gravity="center"/>
    <EditText
        android:id="@+id/new_pwd"
        android:layout_width="200dp"
        android:layout_height="48dp"
        android:layout_marginTop="10dp"
        android:hint="输入新密码"
        android:layout_gravity="center"/>
    <EditText
        android:id="@+id/re_pwd"
        android:layout_width="200dp"
        android:layout_height="48dp"
        android:layout_marginTop="10dp"
        android:hint="确认新密码"
        android:layout_gravity="center"/>
    <Button
        android:id="@+id/reg"
        android:layout_width="200dp"
        android:layout_height="48dp"
        android:layout_marginTop="30dp"
        android:text="确认注册"
        android:onClick="myClick"
        />

</LinearLayout>

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

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

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

相关文章

  • 移动应用开发之路 05 Android Studio 简单登录界面制作

    学校开了一门移动应用开发课程,我一开始兴趣盎然,但是看到使用的环境是 Java 8 的时候心就凉了一半,在询问老师的意见之后决定使用现在比较常用的Android Studio完成学习,特此记录自学之路。 这篇是一个总结性质的文章,主要为了熟练运用之前讲过的几个UI控件。小项目

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

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

    2024年02月07日
    浏览(51)
  • JAVA实现简单的登录界面

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ** 我们首先引入界面开发的相关概念 1 .界面开发框架 : 界面开发 接口与监听器 图形图像项目 2.界面开发包 :包:用来给代码分类的 包名:全小写,用点. 来分隔不同文件夹包 java.awt 早期的界面开发包

    2024年02月11日
    浏览(45)
  • 微信小程序实现简单登录界面和登录功能

    客户端开发和学习过程中,登录功能是一个很常见的场景。本文将介绍,微信小程序开发过程中是如何实现登录界面和登录功能的。 话不多说,直接上代码。 (1)index.js文件,代码如下: (2)index.wxml文件,代码如下: (3)index.wxss文件,代码如下: 运行结果如下: 本文介绍了微信

    2024年02月12日
    浏览(86)
  • Android Studio——实现登录界面

    Android Studio——实现登录界面 在移动应用开发中,登录界面是一种常见的设计需求。通过使用Android Studio,我们可以轻松实现一个简单且美观的登录界面。本文将介绍如何使用Android Studio创建一个登录界面,并提供相应的源代码。 步骤1:创建新项目 首先,打开Android Studio并创

    2024年02月08日
    浏览(32)
  • 用java写个简单的登录系统(终端界面实现)

    一、简介 这是一个简单的Java登录系统,通过命令行界面实现。用户可以选择登录、注册或退出系统,登录时需要输入账号和密码进行验证,注册时需要输入新的账号和密码并将其保存到系统中。本系统使用了继承和封装等面向对象编程的概念。 二、完整代码如下: 三、代码

    2024年02月12日
    浏览(38)
  • Android实现qq登录注册和好友列表界面

    学习Android已经有一个多月了,老师留了实现qq登陆注册和好友列表的作业,要求: 设计登录界面,注册界面和好友列表界面。 在登录界面输入用户名“ admin ”,密码“ abc123 ”后,判断用户名和密码是否正确。 若用户名或密码错误则给出相应提示:“用户名或密码输入有误

    2024年02月02日
    浏览(50)
  • [向前一小步]Android简单实现指纹识别登录

    指纹识别在Android的开发中可以说是不怎么常见,但是Google对于生物识别缺失很重视,显示废弃了以往的Android6.0推出的FingerprintManager ,后针对Android9.0以上更新推出了BiometricPrompt。 Android指纹识别的应用场景其实还算挺多,只不过区别于ios系统,Android手机的硬件都是由各厂商生

    2024年02月13日
    浏览(35)
  • Android Studio Kotlin 简单实现微信主界面UI

                            windows11                         文件版本 2023.2.0.0                         产品版本 2023.2.0.AI-232.10227.8.2321._BUILD_NUMBER_         JAVA属性:                          java version \\\"17.0.10\\\" 2024-01-16 LTS       

    2024年04月16日
    浏览(59)
  • Android Studio|使用SqLite实现一个简单的登录注册功能

    本学期学习了Android Studio这门课程,本次使用Android Studio自带的sqlite数据库实现一个简单的登录注册功能。 目录 一、了解什么是Android Studio? 二、了解什么是sqlite? 三、创建项目文件  四、创建活动文件和布局文件。 五、创建数据库,连接数据库  六、创建实体类,实现注

    2024年02月06日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包