Android实现简易登陆注册逻辑的实例代码

大家好,今天给大家带来Android制作登录和注册功能的实现,当我们面临制作登录和注册功能的实现时,我们需要先设计登录界面的布局和注册界面的布局,做到有完整的思路时才开始实现其功能效果会更好。

activity_login

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <TextView
        android:id="@+id/tv_username"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_marginStart="40dp"
        android:layout_marginTop="100dp"
        android:gravity="center_vertical"
        android:text="账号:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/tv_password"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_marginStart="40dp"
        android:gravity="center_vertical"
        android:text="密码:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/tv_username" />

    <EditText
        android:id="@+id/ed_username"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_marginTop="100dp"
        app:layout_constraintLeft_toRightOf="@id/tv_username"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/ed_password"
        android:layout_width="300dp"
        android:inputType="textPassword"
        android:layout_height="40dp"
        app:layout_constraintLeft_toRightOf="@id/tv_password"
        app:layout_constraintTop_toBottomOf="@id/ed_username" />

    <Button
        android:id="@+id/bu_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="300dp"
        android:text="登录"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@id/bu_register"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/bu_register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="300dp"
        android:text="注册"
        app:layout_constraintLeft_toRightOf="@id/bu_login"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

LoginActivity

package com.jld.exam;

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

import androidx.appcompat.app.AppCompatActivity;

public class LoginActivity extends AppCompatActivity {
    EditText ed_username;
    EditText ed_password;
    Button bu_login;
    Button bu_register;
    String username;
    String password;

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

        ed_username = findViewById(R.id.ed_username);
        ed_password = findViewById(R.id.ed_password);
        bu_login = findViewById(R.id.bu_login);
        bu_register = findViewById(R.id.bu_register);

        //登录按钮监听
        bu_login.setOnClickListener(v -> {
            username = ed_username.getText().toString();
            password = ed_password.getText().toString();

            //登陆的简单逻辑
            if (username.equals("")) {
                Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
            } else if (password.equals("")) {
                Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
            } else if (!username.equals("root") || !password.equals("123456")) {
                Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
            } else {
                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });

        //注册按钮监听
        bu_register.setOnClickListener(v -> {
            Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
            startActivity(intent);
        });
    }

}

activity_main

<?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">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="商品列表"
        android:layout_marginBottom="30dp"
        android:gravity="center_horizontal"/>
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

MainActivity

package com.jld.exam;

import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

public class MainActivity extends AppCompatActivity {

    RecyclerViewAdapter recyclerViewAdapter;
    private final int[] icno = {R.drawable.clock, R.drawable.signal, R.drawable.box,
            R.drawable.second, R.drawable.elephone, R.drawable.ff, R.drawable.notebook, R.drawable.mark, R.drawable.yx,
            R.drawable.shop, R.drawable.theme, R.drawable.xl,};
    private final String[] name = {"时钟", "信号", "宝箱", "秒钟", "大象", "FF", "记事本", "书签", "印象", "商店", "主题", "迅雷"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//GridLayoutManager
        GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 3);//创建recyclerview
        RecyclerView recyclerView = findViewById(R.id.recycler);//设定布局管理器
        recyclerView.setLayoutManager(gridLayoutManager);//创建适配器
        recyclerViewAdapter = new RecyclerViewAdapter(icno, name);
        recyclerView.setAdapter(recyclerViewAdapter);//设定适配器
    }
}

activity_register

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".RegisterActivity">

    <TextView
        android:id="@+id/textView0"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:gravity="center"
        android:text="用户注册"
        android:textSize="30sp"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:drawableStart="@drawable/account"
        android:gravity="center_vertical"
        android:text="用户名:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/textView0" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_weight="10"
        android:autofillHints=""
        android:gravity="center_horizontal"
        android:inputType="text"

        app:layout_constraintLeft_toRightOf="@id/textView1"
        app:layout_constraintTop_toBottomOf="@id/textView0" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:layout_weight="2"
        android:drawableStart="@drawable/password"
        android:gravity="center_vertical"
        android:text="新密码:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/textView1" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_weight="10"
        android:autofillHints=""
        android:gravity="center_horizontal"
        android:inputType="textPassword"
        app:layout_constraintLeft_toRightOf="@id/textView2"
        app:layout_constraintTop_toBottomOf="@id/editText1" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:drawableStart="@drawable/phone"
        android:gravity="center_vertical"
        android:text="手机电话:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/textView2" />

    <EditText
        android:id="@+id/editText5"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_weight="10"
        android:autofillHints=""
        android:gravity="center_horizontal"
        android:inputType="phone"
        app:layout_constraintLeft_toRightOf="@id/textView5"
        app:layout_constraintTop_toBottomOf="@id/editText2" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:drawableStart="@drawable/email"
        android:gravity="center_vertical"
        android:text="E_mail:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/editText5" />

    <EditText
        android:id="@+id/editText7"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_weight="10"
        android:autofillHints=""
        android:gravity="center_horizontal"
        android:inputType="textEmailAddress"
        app:layout_constraintLeft_toRightOf="@id/textView7"
        app:layout_constraintTop_toBottomOf="@id/editText5" />

    <TextView
        android:id="@+id/textView8"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:drawableStart="@drawable/gender"
        android:gravity="center_vertical"
        android:text="性别:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/textView7" />

    <RadioGroup
        android:id="@+id/radioGroup8"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_weight="10"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        app:layout_constraintLeft_toRightOf="@id/textView8"
        app:layout_constraintTop_toBottomOf="@id/editText7">

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男" />
    </RadioGroup>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:text="保存"
        app:layout_constraintEnd_toStartOf="@id/button2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/radioGroup8" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:text="取消"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@id/button1"
        app:layout_constraintTop_toBottomOf="@id/radioGroup8" />
</androidx.constraintlayout.widget.ConstraintLayout>

RegisterActivity

package com.jld.exam;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class RegisterActivity extends AppCompatActivity {

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

recyc_item

<?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="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal"
        android:contentDescription="TODO"
        android:scaleType="centerInside"
        android:src="@drawable/ic_launcher_background" />

    <TextView
        android:id="@+id/tv_desc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="销售价格"
        android:textSize="14sp" />

</LinearLayout>

RecyclerViewAdapter

package com.jld.exam;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
    private final int[] icno;
    private final String[] desc;

    public RecyclerViewAdapter(int[] icno, String[] desc) {
        this.icno = icno;
        this.desc = desc;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyc_item, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.imageView.setImageResource(icno[position]);
        holder.textView.setText(desc[position]);
    }

    @Override
    public int getItemCount() {
        return icno.length;
    }

    //ViewHolder
    public static class ViewHolder extends RecyclerView.ViewHolder {
        View item;
        ImageView imageView;
        TextView textView;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            item = itemView;
            imageView = itemView.findViewById(R.id.iv_image);
            textView = itemView.findViewById(R.id.tv_desc);
        }
    }
}

总结

到此这篇关于Android实现简易登陆注册逻辑的文章就介绍到这了,更多相关Android登陆注册逻辑内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android实现登录注册功能封装

    我们都知道Android应用软件基本上都会用到登录注册功能,那么对一个一个好的登录注册模块进行封装就势在必行了.这里给大家介绍一下我的第一个项目中所用到的登录注册功能的,已经对其进行封装,希望能对大家有帮助,如果有什么错误或者改进的话希望各位可以指出. 我们都知道登录注册系列功能的实现有以下几步: 注册账号 登录账号 (第三方账号登录) 记住密码 自动登录 修改密码 大体的流程如下 对于需要获取用户登录状态的操作,先判断用户是否已经登录. 如果用户已经登录,则继续后面的操作,否则,跳转到登录页面

  • Android登陆界面用户名检测功能

    今天分享一下登陆界面用户登录名的检测,大家都知道如果在服务器端进行所有用户名的检测是比较浪费资源的.用户每点击一次登陆就要发到服务端去检测,对于服务端来说负荷是比较大的.所以呢在客服端对用户的非法信息进行简单的过滤是非常有必要的. 源码下载:Android用户名检测 首先看一下效果: 当用户输入的用户名长度小于3,或者大于9时将出现红色提示,并且登陆按钮不可点击. 当输入的用户名大在合法区间则提示消失,如果密码不为空则登陆按钮可点击 虽然功能很小却用到了不少的东西: EditText失去焦点事件

  • Android设计登录界面、找回密码、注册功能

    本文实例为大家分享了Android 登录.找回密码.注册功能的实现代码,供大家参考,具体内容如下 1.数据库的设计 我在数据库中添加了两张表,一张表用来存储用户信息,诸如用户名,密码,手机号等,可任意添加.另一张表用来存储上一个登录用户的账户信息,我是为了方便才另外创建了一张表去存储,而且这张表我设计了它只能存储一条信息,每次的存储都是对上一条记录的覆盖.事实上,我尝试过在存储用户信息的那张表内添加一个标识,用来标记上一次登录的是哪一个帐号,但是这样做的话,每次改变标识都需要遍历整张表,十分的麻

  • Android登录注册功能 数据库SQLite验证

    本文实例为大家分享了Android登录注册功能的具体代码,供大家参考,具体内容如下 展示效果 代码区 MainActivity(登录方法) public class MainActivity extends AppCompatActivity { @BindView(R.id.editText) EditText editText; @BindView(R.id.editText2) EditText editText2; @BindView(R.id.button) Button button

  • Android实现带有记住密码功能的登陆界面

    本文实例为大家分享了Android带有记住密码功能的登陆界面实现代码,供大家参考,具体内容如下 1.设计思路 主要采用SharedPreferences来保存用户数据,本Demo没有经过加密,所有一旦Android系统被ROOT的话,其他用户就可以查看用户的私有目录,密码文件就很不安全.所以真正应用在软件上面的,一定要经过加密才保存,可以选择MD5加密. SharedPreferences介绍可以参看这篇博文:http://www.jb51.net/article/84859.htm TextW

  • Android如何通过手机获取验证码来完成注册功能

    注册很多app或者网络账户的时候,经常需要手机获取验证码,来完成注册,那时年少,只是觉得手机获取验证码这件事儿很好玩,并没有关心太多,她是如何实现的,以及她背后的故事到底是什么样子的,现在小编接手的这个项目里面,就需要通过手机号进行注册,并且手机号发送相应的验证码,来完成注册,那么在一些应用app里面到底是如何实现点击按钮获取验证码,来完成注册这整个流程的呢?今天小编就以注册为例,和小伙伴们分享一下,如何通过手机号获取验证码来完成注册的一整套流程以及如何采用正则表达式来验证手机号码是否符合电信.

  • Android开发中实现用户注册和登陆的代码实例分享

    在android的应用中越来越多的包含了网络互动功能,这就带来了注册,登陆账号功能.本文完整的介绍对话框的方式实现用户登陆功能. 登陆效果: 应用程序判断当前用户还未登陆,弹出登陆对话框,用户输入账号和密码信息后,传到服务器验证,验证成功后,现实Toast 成功信息,并转到其他界面. 注册效果:用户如没有账号,则点击登陆对话框的 "没有账号,快速注册账号", 弹出注册界面,用户输入注册信息,点击注册按钮,注册成功后,弹出toast信息"注册成功",完成注册后,转到其

  • Android实现简易登陆注册逻辑的实例代码

    大家好,今天给大家带来Android制作登录和注册功能的实现,当我们面临制作登录和注册功能的实现时,我们需要先设计登录界面的布局和注册界面的布局,做到有完整的思路时才开始实现其功能效果会更好. activity_login <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http

  • android实现简易登录注册界面及逻辑设计

    本文实例为大家分享了android实现登录注册界面及逻辑设计,供大家参考,具体内容如下 1. 第一步 新建文件(相信各位码农一定会这一步)略. 2. 第二步 登录注册界面设计 登录界面主要包括几大控件,如登录.注册按钮,账号(Button).密码输入框(Editext).复选框等.可以利用shape参数对控件进行美化.界面设计可以线性布局嵌套使用,这样可以很好的对控件调整,美化界面. 注册界面主要包括EdiText.Radio button.button.checkbox等,与登录界面相同,可以

  • Android高仿QQ6.0侧滑删除实例代码

    推荐阅读: 先给大家分享一下,侧滑删除,布局也就是前面一个item,然后有两个隐藏的按钮(TextView也可以),然后我们可以向左侧滑动,然后显示出来,然后对delete(删除键)实现监听,就可以了哈.好了那就来看看代码怎么实现的吧. 首先和之前一样 自定义View,初始化ViewDragHelper: package com.example.removesidepull; import android.content.Context; import android.support.v4.wi

  • 微信小程序登陆注册功能的实现代码

    我们在开发小程序时,难免会用到登陆注册功能.通常小程序有为我们提供用户授权登陆的功能,但是这个只能获取用户的头像和昵称,我们该怎么样来实现小程序账号密码的注册和登陆呢,今天就来手把手的带大家学习小程序登陆注册功能的开发. 老规矩,先看效果图 通过上图可以看到我们主要实现了以下功能1,账号密码登陆2,账号密码注册3,退出登陆下面我们就来看下具体实现一,原理讲解 因为我们账号密码的注册,就是把用户设置的账号密码存到数据库里,登陆也是从数据库里取账号和密码来校验.所以我们必须要有数据库.如果用传统的数

  • Android 中隐藏虚拟按键的方法实例代码

    下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getWindow().getDec

  • Android判断是否有拍照权限的实例代码

    下面一段代码给大家介绍android判断是否有拍照权限,具体代码如下所示: /** * 返回true 表示可以使用 返回false表示不可以使用 */ public boolean cameraIsCanUse() { boolean isCanUse = true; Camera mCamera = null; try { mCamera = Camera.open(); Camera.Parameters mParameters = mCamera.getParameters(); //针对

  • Android 删除指定包名的App实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: /** * check and delete the old package app if it exists. */ private void checkOldPackage() { String packageName = "xxx.xxx.xxx.xxx"; if (isAvilible(this, packageName)) { Intent uninstall_intent = new Intent(); uninstal

  • Android实现空心圆角矩形按钮的实例代码

    页面上有时会用到背景为空心圆角矩形的Button,可以通过xml绘制出来. drawrable文件夹下bg_red_hollow_rectangle.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle&qu

  • 使用JavaWeb webSocket实现简易的点对点聊天功能实例代码

    首先给大家声明一点:需要 jdk 7 , tomcat需要支持websocket的版本  1.InitServlet 该类主要是用来初始化构造将来存储用户身份信息的map仓库,利用其初始化方法Init 初始化仓库, 利用其静态方法getSocketList 获得对应的用户身份信息. webSocket ,我认为MessageInbound 用来识别登录人的信息,用它来找到对应的人,推送消息.每次登录都会产生一个MessageInbound. 这里的 HashMap<String,MessageI

  • Android开发模仿qq视频通话悬浮按钮(实例代码)

    模仿qq视频通话的悬浮按钮的实例代码,如下所示: public class FloatingWindowService extends Service{ private static final String TAG="OnTouchListener"; private static View mView = null; private static WindowManager mWindowManager = null; private static Context mContext

随机推荐