<Android>Xutils的本地数据库的使用---登录注册等
来源:互联网 发布:南京网络问政江北新区 编辑:程序博客网 时间:2024/05/22 09:50
这个数据库的基本使用上篇中已经讲过了,今天就是怎么实现简单的本地注册登录等功能
不啰嗦,直接上代码:1、bean类
package com.sdp.panda.pictrueapp.bean;/** * Created by 80926 on 2016/10/20. */public class UserBean { private String name; private String password; private int id; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { return "UserBean{" + "name='" + name + '\'' + ", password='" + password + '\'' + ", id=" + id + '}'; }}
2、三个布局文件 1.activity_forget.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/et_forget_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/biaoqingbao" android:layout_marginTop="164dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:background="@null" android:hint="输入用户名"/> <EditText android:id="@+id/et_forget_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/hongbao" android:hint="输入密码" android:background="@null" android:layout_below="@+id/et_forget_name" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="14dp" /> <EditText android:id="@+id/et_re_forget_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/hongbao" android:hint="再输入一遍" android:background="@null" android:layout_below="@+id/et_forget_password" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="18dp" /> <Button android:id="@+id/btn_forget" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="更改密码" android:textColor="#ff00" android:layout_below="@+id/et_re_forget_password" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="10dp" /></RelativeLayout>
2.activity_user.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/et_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/biaoqingbao" android:layout_marginTop="164dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:background="@null" android:hint="输入用户名"/> <EditText android:id="@+id/et_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/hongbao" android:hint="输入密码" android:background="@null" android:layout_below="@+id/et_name" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="14dp" /> <Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" android:textColor="#ff00" android:layout_below="@+id/et_password" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="10dp" /> <TextView android:id="@+id/tv_forget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="忘记密码" android:textSize="18sp" android:textColor="#00ff00" android:layout_below="@+id/btn_login" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="12dp" /> <TextView android:id="@+id/tv_resiger" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册新用户" android:textSize="18sp" android:textColor="#00ff00" android:layout_alignBaseline="@+id/tv_forget" android:layout_alignBottom="@+id/tv_forget" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /></RelativeLayout>
3.activity_resgiter.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/et_res_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/biaoqingbao" android:layout_marginTop="164dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:background="@null" android:hint="输入用户名"/> <EditText android:id="@+id/et_res_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/hongbao" android:hint="输入密码" android:background="@null" android:layout_below="@+id/et_res_name" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="14dp" /> <EditText android:id="@+id/et_re_res_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@mipmap/hongbao" android:hint="再输入一遍" android:background="@null" android:layout_below="@+id/et_res_password" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="18dp" /> <Button android:id="@+id/btn_res_resigter" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="注册" android:textColor="#ff00" android:layout_below="@+id/et_re_res_password" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="10dp" /></RelativeLayout>
3、三个Activity1.UserActivity
package com.sdp.panda.pictrueapp;import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.lidroid.xutils.db.sqlite.Selector;import com.lidroid.xutils.exception.DbException;import com.sdp.panda.pictrueapp.app.MyApp;import com.sdp.panda.pictrueapp.bean.UserBean;/** * Created by 80926 on 2016/10/20. */public class UserActivity extends Activity implements View.OnClickListener { private Button btnLogin; private TextView tvResig; private TextView tvForget; private EditText etPassword; private EditText etName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_uesr); initData(); initView(); } private void initData() { } private void initView() { etName = (EditText) findViewById(R.id.et_name); etPassword = (EditText) findViewById(R.id.et_password); tvForget = (TextView) findViewById(R.id.tv_forget); tvResig = (TextView) findViewById(R.id.tv_resiger); btnLogin = (Button) findViewById(R.id.btn_login); btnLogin.setOnClickListener(this); tvForget.setOnClickListener(this); tvResig.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_login: String name = etName.getText().toString().trim(); String password= etPassword.getText().toString().trim(); //进行判断如果查询不到name,或者密码不匹配提示不存在用户名或者重新输入密码 try { UserBean userFindName = MyApp.dbUtils.findFirst(Selector.from(UserBean.class).where("name", "=", name)); if (userFindName==null){ Toast.makeText(this, "用户名不存在", Toast.LENGTH_SHORT).show(); etName.setText(""); etPassword.setText(""); }else { String userFindPassword = userFindName.getPassword(); if (!userFindPassword.equals(password)){ Toast.makeText(this, "密码错误,请重新输入", Toast.LENGTH_SHORT).show(); SharedPreferences.Editor edit = MyApp.sp.edit(); edit.putString("name",name); edit.commit(); etPassword.setText(""); }else { Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show(); startActivity(new Intent(this,InfoActivity.class)); } } } catch (DbException e) { e.printStackTrace(); } break; case R.id.tv_forget: startActivity(new Intent(this,ForgetActivity.class)); break; case R.id.tv_resiger: Intent intent = new Intent(this,ResigterActivity.class); startActivity(intent); break; } } @Override protected void onDestroy() { super.onDestroy(); }}
2.ResigterActivity
package com.sdp.panda.pictrueapp;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.lidroid.xutils.db.sqlite.Selector;import com.lidroid.xutils.exception.DbException;import com.sdp.panda.pictrueapp.app.MyApp;import com.sdp.panda.pictrueapp.bean.UserBean;/** * Created by 80926 on 2016/10/20. */public class ResigterActivity extends Activity implements View.OnClickListener { private Button btnLogin; private EditText etPassword,etRePassword; private EditText etName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_resigter); initView(); } private void initView() { etName = (EditText) findViewById(R.id.et_res_name); etPassword = (EditText) findViewById(R.id.et_res_password); etRePassword = (EditText) findViewById(R.id.et_re_res_password); btnLogin = (Button) findViewById(R.id.btn_res_resigter); btnLogin.setOnClickListener(this); } @Override public void onClick(View v) { String name = etName.getText().toString().trim(); String password = etPassword.getText().toString().trim(); String rePassword = etRePassword.getText().toString().trim(); if (!name.equals("")&&!password.equals("")&&!rePassword.equals("")){ if (password.equals(rePassword)){ UserBean userBean = new UserBean(); userBean.setName(name); userBean.setPassword(password); try { UserBean userFindName = MyApp.dbUtils.findFirst(Selector.from(UserBean.class).where("name", "=", name)); if (userFindName==null) { MyApp.dbUtils.save(userBean); Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show(); finish(); }else { Toast.makeText(this, "用户名已注册,重新输入", Toast.LENGTH_SHORT).show(); etName.setText(""); etPassword.setText(""); etRePassword.setText(""); } } catch (DbException e) { e.printStackTrace(); } }else { Toast.makeText(this, "两次密码不一致", Toast.LENGTH_SHORT).show(); etPassword.setText(""); etRePassword.setText(""); } }else { Toast.makeText(this, "不能为空", Toast.LENGTH_SHORT).show(); etRePassword.setText(""); etPassword.setText(""); etName.setText(""); } }}
3.ForgetActivity
package com.sdp.panda.pictrueapp;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.lidroid.xutils.db.sqlite.Selector;import com.lidroid.xutils.exception.DbException;import com.sdp.panda.pictrueapp.app.MyApp;import com.sdp.panda.pictrueapp.bean.UserBean;/** * Created by 80926 on 2016/10/20. */public class ForgetActivity extends Activity implements View.OnClickListener { private Button btnLogin; private EditText etPassword,etRePassword; private EditText etName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_forget); initView(); } private void initView() { etName = (EditText) findViewById(R.id.et_forget_name); etPassword = (EditText) findViewById(R.id.et_forget_password); etRePassword = (EditText) findViewById(R.id.et_re_forget_password); btnLogin = (Button) findViewById(R.id.btn_forget); etName.setText(MyApp.sp.getString("name","")); btnLogin.setOnClickListener(this); } @Override public void onClick(View v) { String name = etName.getText().toString().trim(); String password = etPassword.getText().toString().trim(); String rePassword = etRePassword.getText().toString().trim(); if (!name.equals("")&&!password.equals("")&&!rePassword.equals("")){ try { UserBean userFindName = MyApp.dbUtils.findFirst(Selector.from(UserBean.class).where("name", "=", name)); if(userFindName == null){ Toast.makeText(this, "用户名不存在", Toast.LENGTH_SHORT).show(); etRePassword.setText(""); etPassword.setText(""); etName.setText(""); }else { if (password.equals(rePassword)) { MyApp.dbUtils.delete(userFindName); UserBean userBean = new UserBean(); userBean.setPassword(password); userBean.setName(name); MyApp.dbUtils.save(userBean); Toast.makeText(this, "密码更改完成", Toast.LENGTH_SHORT).show(); finish(); }else { Toast.makeText(this, "两次密码不一致", Toast.LENGTH_SHORT).show(); etPassword.setText(""); etRePassword.setText(""); } } } catch (DbException e) { e.printStackTrace(); } }else { Toast.makeText(this, "不能为空", Toast.LENGTH_SHORT).show(); etName.setText(""); etPassword.setText(""); etRePassword.setText(""); } }}
0 0
- <Android>Xutils的本地数据库的使用---登录注册等
- <Android>本地数据库之--Xutils的使用
- XUtils结合使用的登录和注册
- 使用OrmLite数据库实现本地的账号登录,注册功能
- Android XUtils的使用
- 关于Android使用Xutils的WebView保存Cookie登录
- 注册-登录等功能的综合运用(有数据库的)
- XUtils数据库的简单使用;
- [Android 开发] xUtils的使用
- android xutils框架的使用
- 数据库的登录和注册
- 登录注册(XUtils)
- Android网络框架xUtils的数据库操作
- php实现注册登录的完整程序(使用mysql数据库)
- 使用LitePal实现数据库的登录和注册
- 登录注册使用数据库
- sys使用用户名密码的方式本地登录数据库服务器
- Android 数据库使用-org.xutils
- 简单博弈论题目总结
- python连接mysql
- 1619-7 张良 十月二十号总结 [连续第二十天]
- DM&ML or some other names
- javascript点击li,显示相应的值
- <Android>Xutils的本地数据库的使用---登录注册等
- EasyUI Layout实现tabs标签
- 只需五分钟,开始使用Kotlin开发Android
- Install Lispwork 5.1 on Linux64
- 总结20
- windows下 安装Kali Linux到 U盘的方法
- leetcode23_Merge k Sorted Lists
- Java Socket网络编程--模仿写一个本机QQ聊天程序
- 特征选取