这篇文章主要为大家详细介绍了Android实现登录注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下
运行环境 Android Studio
总体效果图
一、 设计注册页面的布局
二、完成注册功能
(1) 添加User类
(2)添加 UserManager类 管理用户信息
package com.example.videoplayer;
import android.hardware.usb.UsbRequest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
* Created by 大头 on 2020/5/28.
*/
public class UserManager
{
//创建一个List来缓存User信息
List<User> userList = new ArrayList<>();
//数据保存到这个文件
File file;
public UserManager(File file)
{
this.file = file;
}
//保存文件
public void save() throws Exception
{
//每行存储一个用户的信息
FileOutputStream fileOutputStream = new FileOutputStream(file);
for (User u : userList)
{
String line = u.username + "," + u.password + "\n";
fileOutputStream.write(line.getBytes("UTF-8"));
}
fileOutputStream.close();
}
//从文件加载
public void load() throws Exception
{
InputStreamReader in = new InputStreamReader(new FileInputStream(file));
BufferedReader reader = new BufferedReader(in);
userList.clear();//清空链表
while (true)
{
String line = reader.readLine();
if (line == null)
break;
String[] cols = line.split(",");
if (cols.length<2) continue;
User user = new User();
user.username = cols[0].trim();
user.password = cols[1].trim();
userList.add( user );
}
reader.close();
}
//注册一个新用户
public void add(User u)
{
userList.add(u);
}
// 按名称查找
public User find(String username)
{
for (User u : userList)
{
if(u.username.equals(username))
{
return u;
}
}
return null;
}
}(3)在RegisterActivity里面调用UserManager 实现注册
package com.example.videoplayer;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.io.File;
public class RegisterActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
}
public void doRegister(View view)
{
//获取用户输入
String username = ((EditText)findViewById(R.id.id_username)).getText().toString();
String password = ((EditText)findViewById(R.id.id_password)).getText().toString();
String password2 = ((EditText)findViewById(R.id.id_password2)).getText().toString();
if(!password.equals(password2))
{
Toast.makeText(this,"两次密码不一致",Toast.LENGTH_SHORT).show();
return;
}
//保存用户信息
File file = new File(getExternalFilesDir(""),"users.txt");
UserManager userManager = new UserManager(file);
try {
userManager.load();//从users.txt 中读取数据
}catch (Exception e){
}
//检查用户是否存在
if(userManager.find(username) != null)
{
Toast.makeText(this, "用户名已经存在!", Toast.LENGTH_SHORT).show();
}
else
{
//添加用户 保存文件
userManager.add(new User(username,password));
try {
userManager.save();
}catch (Exception e){
e.printStackTrace();
}
Toast.makeText(this, "注册成功!", Toast.LENGTH_SHORT).show();
}
}
}三、添加登录页面
(1)添加布局
(2)点击注册跳转到登录页面
(3)点击登录能跳转到主页面
最后应调用finish()关闭本界面,即从返回栈里销毁本界面。原因是,当用户进入主界面后,点返回时应返回到Home主屏,而不应该返回到登录界面。
(可扩展:保存登录信息 自动登录)
package com.example.videoplayer;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.io.File;
public class UserLoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_login);
}
//点击 '登录' 按钮
public void doLogin(View view)
{
// 取得用户界面输入
String username = ((EditText)findViewById(R.id.id_username)).getText().toString();
String password = ((EditText)findViewById(R.id.id_password)).getText().toString();
//从文件里加载所有用户的数据
File file = new File(getExternalFilesDir(""),"users.txt");
UserManager userManager = new UserManager(file);
try {
userManager.load();
}catch (Exception e){}
//从用户列表里查找用户
User user = userManager.find(username);
if (user == null)
{
Toast.makeText(this, "无此用户!", Toast.LENGTH_SHORT).show();
return;
}
//比较密码是否匹配
if (!user.password.equals(password))
{
Toast.makeText(this, "密码错误!", Toast.LENGTH_SHORT).show();
return;
}
//登录成功 把用户信息放在全局对象里
//进入主界面
Intent intent = new Intent(UserLoginActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
// 点击 '注册' 按钮
public void doRegister(View view)
{
Intent intent = new Intent(UserLoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:Android实现登录注册功能
猜你喜欢
- SurfaceView播放视频发送弹幕并实现滚动歌词 2023-01-02
- Android实现监听音量的变化 2023-03-30
- iOS 对当前webView进行截屏的方法 2023-03-01
- Android MaterialButton使用实例详解(告别shape、selector) 2023-06-16
- Flutter实现底部和顶部导航栏 2022-08-31
- 作为iOS开发,这道面试题你能答出来,说明你基础很OK! 2023-09-14
- 详解flutter engine 那些没被释放的东西 2022-12-04
- Android studio实现动态背景页面 2023-05-23
- Android实现轮询的三种方式 2023-02-17
- 最好用的ios数据恢复软件:PhoneRescue for Mac 2023-09-14
