Android + Bmob 实现用户注册登录

编程入门 行业动态 更新时间:2024-10-28 17:14:27

Android + Bmob 实现<a href=https://www.elefans.com/category/jswz/34/1753675.html style=用户注册登录"/>

Android + Bmob 实现用户注册登录

用户登录思路

  • 如果已经登录APP, 跳转到主页面
  • 如果没有登录APP,跳转到登录界面
    • 没有账号 —— 注册
    • 已有账号 —— 登录

具体实现

1. 在Bmob里新建一个应用

1.1 登录/注册Bmob后,点击创建应用按钮

1.2 起名 —— 选择开发免费版 —— 创建应用,就ok啦

1.3 查看Application ID

点开创建的应用,在设置里面可以看到非常重要的 Application ID(后面会用到)

2. Bmob SDK导入

2.1添加依赖

参考官方文档:.html#sdk_1

appbuild.gradle文件中添加依赖文件

dependencies {implementation 'io.github.bmob:android-sdk:3.8.13'implementation 'io.reactivex.rxjava2:rxjava:2.2.8'implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'implementation 'com.squareup.okhttp3:okhttp:4.8.1'implementation 'com.squareup.okio:okio:2.2.2'implementation 'com.google.code.gson:gson:2.8.5'
}

同步后,可以看到

2.2 配置AndroidManifest.xml

参考官方文档:.html#androidmanifestxml

AndroidManifest.xml文件中添加相应的权限:

<!--允许联网 --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息  --> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--获取wifi网络状态的信息 --> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<!--保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<!--获取sd卡写的权限,用于文件上传和下载-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许读取手机状态 用于创建BmobInstallation--> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
2.3 配置ContentProvider

AndroidManifest.xml文件的application里添加

<application>
···
<providerandroid:name="cn.bmob.v3.util.BmobContentProvider"android:authorities="你的应用包名.BmobContentProvider">
</provider>
···
</application>
2.4 初始化BmobSDK

哪里需要就在哪里写,我是写在SplashActivity里面的(Splash是我的app点开的页面,我需要在这里判断是否需要登录,以及跳转操作)

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import java.util.Timer;
import java.util.TimerTask;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobUser;
import cn.ziwei.zyapp.Bean.User;public class SplashActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_splash);// 延时操作,延时2秒Timer timer = new Timer();timer.schedule(timetask, 2000);// 初始化BmobSDK// 第二个参数appkey: 是第一步创建的应用里面的Application IDBmob.initialize(this, "xxxxxxxxxx");}TimerTask timetask = new TimerTask() {@Overridepublic void run() {// 判断用户是否登录// 	   已登录,跳转到主界面;未登陆,调转到登录界面BmobUser bmobUser = BmobUser.getCurrentUser(User.class);if (bmobUser!=null){// 已登录,跳转到主界面MainActivitystartActivity(new Intent(SplashActivity.this, MainActivity.class));finish();}else {// 未登录,跳转到登录界面LoginActivitystartActivity(new Intent(SplashActivity.this, LoginActivity.class));finish();}}};
}

3. 实现登录操作

3.1 LoginActivity代码
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;import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;
import cn.ziwei.zyapp.Bean.User;public class LoginActivity extends AppCompatActivity {private EditText username, password;      // 登录年龄、密码private Button login_btn, register_btn;   // 登录按钮、注册按钮@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);username = findViewById(R.id.username);password = findViewById(R.id.password);login_btn = findViewById(R.id.login);register_btn = findViewById(R.id.register);// 登录按钮,设置点击事件login_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 登录User user = new User(); // 自己写的User类,继承BmobUser,只有一个nickname属性// 设置登录的账号user.setUsername(username.getText().toString().trim());// 设置登录的密码user.setPassword(password.getText().toString().trim());user.login(new SaveListener<User>() {@Overridepublic void done(User bmobUser, BmobException e) {if (e == null) {// 登录成功,跳转到主界面Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_SHORT).show();startActivity(new Intent(LoginActivity.this, MainActivity.class));finish();} else {Toast.makeText(LoginActivity.this, "用户名/密码错误,登录失败!", Toast.LENGTH_SHORT).show();}}});}});}
}
3.2 activity_login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_margin="20dp"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayoutandroid:layout_width="300dp"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:gravity="center"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="账号:"android:textColor="#000"android:textSize="24sp"android:textStyle="bold" /><EditTextandroid:id="@+id/username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入账号" /></LinearLayout><LinearLayoutandroid:layout_marginTop="20dp"android:gravity="center"android:orientation="horizontal"android:layout_width="300dp"android:layout_height="wrap_content"><TextViewandroid:textColor="#000"android:textStyle="bold"android:textSize="24sp"android:text="密码:"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入密码"/></LinearLayout></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"><Buttonandroid:id="@+id/login"android:layout_margin="20dp"android:textSize="24sp"android:textColor="#fff"android:background="@color/cardview_dark_background"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="登录"/><Buttonandroid:id="@+id/register"android:layout_margin="20dp"android:textSize="24sp"android:textColor="#fff"android:background="@color/cardview_dark_background"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="注册"/></LinearLayout>
</LinearLayout>

4. 在Bmob应用,添加用户的数据

打开应用,点击数据,会有一个默认的_User表

首先添加自己需要的列:username,password(和代码里面的id保持一致)

然后添加行,也就是数据。再进行登录操作的时候,回到这里来检测,用户名称、密码是否正确

4. 实现注册操作

4.1 在实现登录界面已经设置了注册按钮,于是在LoginActicity添加注册按钮的点击事件
// 注册按钮,设置点击事件
register_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(LoginActivity.this, RegisterActivity.class));}
});
4.2 RegisterActivity
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;import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;
import cn.ziwei.zyapp.Bean.User;public class RegisterActivity extends AppCompatActivity {private EditText username, password, nickname;   // 登录年龄、密码、昵称private Button register_btn;                     // 注册按钮@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);username = findViewById(R.id.username);password = findViewById(R.id.password);nickname = findViewById(R.id.nickname);register_btn = findViewById(R.id.register);// 注册按钮,设置点击事件register_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {User user = new User();user.setUsername(username.getText().toString().trim());user.setPassword(username.getText().toString().trim());user.setNickname(nickname.getText().toString().trim());// 判断用户名是否为空if (username.getText().toString().equals("")){Toast.makeText(RegisterActivity.this, "用户名为空", Toast.LENGTH_SHORT).show();}// 判断密码是否为空if (password.getText().toString().equals("")){Toast.makeText(RegisterActivity.this, "用户密码为空", Toast.LENGTH_SHORT).show();}// 注册user.signUp(new SaveListener<User>() {@Overridepublic void done(User user, BmobException e) {if (e == null){Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();finish();// 跳转到登录界面startActivity(new Intent(RegisterActivity.this, LoginActivity.class));}else {Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show();}}});}});}
}
4.3 activity_register.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_margin="20dp"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayoutandroid:layout_width="300dp"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:gravity="center"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="账号:"android:textColor="#000"android:textSize="24sp"android:textStyle="bold" /><EditTextandroid:id="@+id/username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入账号" /></LinearLayout><LinearLayoutandroid:layout_marginTop="20dp"android:gravity="center"android:orientation="horizontal"android:layout_width="300dp"android:layout_height="wrap_content"><TextViewandroid:textColor="#000"android:textStyle="bold"android:textSize="24sp"android:text="密码:"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入密码"/></LinearLayout><LinearLayoutandroid:layout_marginTop="20dp"android:gravity="center"android:orientation="horizontal"android:layout_width="300dp"android:layout_height="wrap_content"><TextViewandroid:textColor="#000"android:textStyle="bold"android:textSize="24sp"android:text="昵称:"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/nickname"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入昵称"/></LinearLayout></LinearLayout><Buttonandroid:id="@+id/register"android:layout_margin="20dp"android:textSize="24sp"android:textColor="#fff"android:background="@color/cardview_dark_background"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="注册"/>
</LinearLayout>
4.4 可以查看Bmob里面的表,新数据已存在

这样一个简单的用户登录注册,就实现啦~~~

更多推荐

Android + Bmob 实现用户注册登录

本文发布于:2024-03-09 13:16:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725059.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:用户注册   Android   Bmob

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!