结合数据库登录注册模块,登录成功之后跳到WebView
最近刚刚做了一个模块,在本地建立一个数据库,存储注册的账号,登录的时候取出,正确则登录,登录之后跳到一个webView网页。
直接上代码吧。
LoginActivity.java
package com.example.login; import com.example.service.UserService; import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class LoginActivity extends Activity implements OnClickListener{ SQLiteDatabase mysql;
private EditText et_name;
private EditText et_password; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login); initView(); } private void initView() {
et_name = (EditText) findViewById(R.id.et_Name);
et_password = (EditText) findViewById(R.id.et_Password);
Button newUer = (Button) findViewById(R.id.newUer);
Button login = (Button) findViewById(R.id.login); login.setOnClickListener(this);
newUer.setOnClickListener(this); } @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
String name=et_name.getText().toString();
String pass=et_password.getText().toString();
Log.i("TAG",name+"_"+pass);
UserService uService=new UserService(LoginActivity.this);
boolean flag=uService.login(name, pass);
if(flag){
Log.i("TAG","登录成功");
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
Toast.makeText(LoginActivity.this, "正在加载,请耐心等待", Toast.LENGTH_LONG).show();
Intent intent = new Intent();
intent.setClass(LoginActivity.this,UserDetailActivity.class);
//intent.putExtra("url", newsList.get(arg1).url);
startActivity(intent);
LoginActivity.this.finish();
}else{
if (et_name.getText().toString().trim().length() == ) {
Toast.makeText(this, "请填写账号", Toast.LENGTH_SHORT).show();
} else if (et_password.getText().toString().trim().length() == ) {
Toast.makeText(this, "请填写密码", Toast.LENGTH_SHORT).show();
}else {
Log.i("TAG","登录失败,请检查账号密码是否正确!");
Toast.makeText(LoginActivity.this, "登录失败,请检查账号密码是否正确!", Toast.LENGTH_LONG).show();
}
}
break;
case R.id.newUer:
Intent intent=new Intent(LoginActivity.this,RegisteredActivity.class);
startActivity(intent); break; default:
break;
} } }
RegisteredActivity.java
package com.example.login; import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException; import com.example.service.UserService;
import com.example.userbean.User; import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Editable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextWatcher;
import android.text.style.AbsoluteSizeSpan;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast; public class RegisteredActivity extends Activity implements OnClickListener { private ImageView img_back;
private Button btn_registered;
private EditText et_Account;
private EditText et_Password;
private EditText et_Password_true;
private EditText et_Name;
private EditText et_Company;
private EditText et_Phone;
SQLiteDatabase mysql;
// phoneNum格式
private int Is;
private String string;
private int After;
private boolean isIncrease = false;
boolean isTrue = false;
private Button bt1;
private Button bt2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.registered);
setContentView(R.layout.registered);
// 找到控件
initView();
// 判断两次密码是否一致
initEditTextSet();
} /**
* 判断两次密码是否一致方法
*/
private void initEditTextSet() {
et_Password_true
.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {// 获得焦点 } else {// 失去焦点
if (!(et_Password_true .getText().toString().trim()).equals(et_Password
.getText().toString().trim())) {
et_Password_true
.setError(getString(R.string.Inconsistent_password));
} else {
isTrue = true;
return;
}
}
}
});
} private void initView() { img_back = (ImageView) findViewById(R.id.registered_back);// 返回
btn_registered = (Button) findViewById(R.id.btn_registered);// 注册
et_Account = (EditText) findViewById(R.id.editText_Account_number);// 账号
et_Password = (EditText) findViewById(R.id.editText_Password);// 密码
et_Password_true = (EditText) findViewById(R.id.editText_Password_true);// 确认密码
et_Name = (EditText) findViewById(R.id.editText_Name);// 姓名
et_Company = (EditText) findViewById(R.id.editText_Company);// 单位
et_Phone = (EditText) findViewById(R.id.editText_Phone);// 手机 img_back.setOnClickListener(this);
btn_registered.setOnClickListener(this); // 设置电话号文本自动生成344 格式例如:138 8888 8888
et_Phone.addTextChangedListener(new TextWatcher() { @Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
Is = arg0.length();
if (Is - After == ) {
isIncrease = true;
} else {
isIncrease = false;
}
if (isIncrease) {
if (arg0.length() == ) {
string = arg0 + " ";
et_Phone.setText(string);
et_Phone.setSelection();
}
if (arg0.length() == ) {
string = arg0 + " ";
et_Phone.setText(string);
et_Phone.setSelection();
}
}
} @Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
After = arg0.length();
} @Override
public void afterTextChanged(Editable arg0) {
}
});
// ======================= 判断特殊字符于密码长度 =====================// final int mMaxLenth = ;// 设置允许输入的字符长度 et_Password.addTextChangedListener(new TextWatcher() {
private int cou = ;
int selectionEnd = ; @Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
cou = before + count;
String editable = et_Password.getText().toString();
String str = stringFilter(editable); // 过滤特殊字符
if (!editable.equals(str)) {
et_Password.setText(str);
}
et_Password.setSelection(et_Password.length());
cou = et_Password.length();
} @Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
} @Override
public void afterTextChanged(Editable s) {
if (cou > mMaxLenth) {
Toast.makeText(RegisteredActivity.this, "密码长度已经为最长",
Toast.LENGTH_SHORT).show();
selectionEnd = et_Password.getSelectionEnd();
s.delete(mMaxLenth, selectionEnd);
}
}
}); // ------------------------ 判断特殊字符于密码长度 -----------------------// btn_registered.setOnTouchListener(new OnTouchListener() { @Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
btn_registered.setBackgroundColor(getResources().getColor(
R.color.blue_other_one));
} else if (event.getAction() == MotionEvent.ACTION_UP) {
btn_registered.setBackgroundColor(getResources().getColor(
R.color.blue_other));
}
return false;
}
}); // 设置Edittext里面文本字体的大小
SpannableString ss = new SpannableString("请输入‘11位’本人手机号码");
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(, true);
ss.setSpan(ass, , ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
et_Phone.setHint(new SpannableString(ss)); // 设置Edittext里面文本字体的大小
SpannableString pa = new SpannableString("请输入‘8-16位’不含有特殊字符的密码");
AbsoluteSizeSpan paw = new AbsoluteSizeSpan(, true);
pa.setSpan(paw, , pa.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
et_Password.setHint(new SpannableString(pa));
} /**
* 设置密码特殊字的字符方法
*
* @param str
* @return
* @throws PatternSyntaxException
*/
public static String stringFilter(String str) throws PatternSyntaxException {
String regEx = "[/\\:*?<>|\"\n\t]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("");
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.registered_back:
finish();
break;
// 完成注册
case R.id.btn_registered: if (et_Account.getText().toString().trim().length() == ) {
Toast.makeText(this, "请填写账号", Toast.LENGTH_SHORT).show();
} else if (et_Password.getText().toString().trim().length() == ) {
Toast.makeText(this, "请填写密码", Toast.LENGTH_SHORT).show();
} else if (et_Name.getText().toString().trim().length() == ) {
Toast.makeText(this, "请填写姓名", Toast.LENGTH_SHORT).show();
} else if (et_Company.getText().toString().trim().length() == ) {
Toast.makeText(this, "请填写单位名", Toast.LENGTH_SHORT).show();
} else if (et_Phone.getText().toString().trim().length() <= ) {
Toast.makeText(this, "请填写本人联系电话", Toast.LENGTH_SHORT).show();
} else {
try { String account = et_Account.getText().toString().trim();
String password = et_Password.getText().toString().trim();
String password_true = et_Password_true.getText()
.toString().trim();
String name = et_Name.getText().toString().trim();
String company = et_Company.getText().toString().trim();
String phone = et_Phone.getText().toString().trim(); UserService uService = new UserService(
RegisteredActivity.this);
User user = new User();
user.setAccount(account);
user.setPassword(password);
user.setPassword_true(password_true);
user.setName(name);
user.setPassword_true(password_true);
user.setPhone(phone);
user.setCompany(company);
uService.register(user);
// Toast.makeText(RegisteredActivityNew.this, "注册成功",
// Toast.LENGTH_LONG).show();
LayoutInflater fac2 = LayoutInflater
.from(RegisteredActivity.this);
View dialogview2 = fac2.inflate(R.layout.tishi, null); TextView view_1 = (TextView) dialogview2
.findViewById(R.id.textView1);
view_1.setText("注册成功!"); AlertDialog dialog2 = new AlertDialog.Builder(
RegisteredActivity.this)
.setTitle("提示框")
.setView(dialogview2)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() { public void onClick(
DialogInterface arg0, int arg1) {
Intent intent = new Intent();
intent.setClass(
RegisteredActivity.this,
LoginActivity.class);
startActivity(intent);
RegisteredActivity.this.finish();
}
}).create();
dialog2.show(); } catch (Exception e) {
Dialog dialog3 = new AlertDialog.Builder(
RegisteredActivity.this)
.setTitle("信息框")
.setMessage("注册失败")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() { public void onClick(
DialogInterface arg0, int arg1) {
} }).create();
dialog3.show();
} } break; default:
break;
} } }
UserDetailActivity.java
package com.example.login; import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout; public class UserDetailActivity extends Activity
{
private FrameLayout loading_view;
private WebView webview;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webview = (WebView) findViewById(R.id.webview);
//加载过程中转圈的进度条
//loading_view = (FrameLayout) findViewById(R.id.loading_view);
webview = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webview.getSettings();
//设置WebView属性,能够执行Javascript脚本
webSettings.setJavaScriptEnabled(true);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
//设置支持缩放
webSettings.setBuiltInZoomControls(true);
//加载需要显示的网页
webview.loadUrl("http://www.baidu.com");
// webview.loadUrl("file:///E:/java_demo_workspace/day01/day01/WebRoot/html/表单标签.html"); //设置Web视图
webview.setWebViewClient(new webViewClient ()); } @Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
//设置回退
//覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack(); //goBack()表示返回WebView的上一页面
return true;
}
finish();//结束退出程序
return false;
} //Web视图
private class webViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
} }
Service包
DatabaseHelper.java
package com.example.service; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper{ static String name="user.db";
static int dbVersion=; public DatabaseHelper(Context context) {
super(context, name, null, dbVersion);
} //只有第一次创建的时候会用到。
@Override
public void onCreate(SQLiteDatabase db) {
String sql="create table user(id integer primary key autoincrement,Account varchar(20),Password varchar(20),Password_true varchar(20),Name varchar(20),Company varchar(20),Phone varchar(20))";
db.execSQL(sql);
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
UserService.java
package com.example.service; import com.example.userbean.User; import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; public class UserService { private DatabaseHelper dbHelper;
public UserService(Context context) {
dbHelper = new DatabaseHelper(context);
} //登录用
public boolean login(String Account,String Password){
SQLiteDatabase sdb=dbHelper.getReadableDatabase();
String sql="select * from user where Account=? and Password=?";
Cursor cursor=sdb.rawQuery(sql, new String[]{Account,Password});
if(cursor.moveToFirst()==true){
cursor.close();
return true;
}
return false; }
//注册用
public boolean register(User user){
SQLiteDatabase sdb=dbHelper.getReadableDatabase();
String sql="insert into user(Account,Password,Password_true,Name,Company,Phone) values(?,?,?,?,?,?)";
Object obj[]={user.getAccount(),user.getPassword(),user.getPassword_true(),user.getName(),user.getCompany(),user.getPhone()};
sdb.execSQL(sql, obj);
return true;
}
}
UserBean包
User.java
package com.example.userbean;
import java.io.Serializable;
public class User implements Serializable{
private int id;
private String Account;
private String Password;
private String Password_true;
private String Name;
private String Company;
private String Phone;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(int id, String account, String password, String password_true,
String name, String company, String phone) {
super();
this.id = id;
Account = account;
Password = password;
Password_true = password_true;
Name = name;
Company = company;
Phone = phone;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return Account;
}
public void setAccount(String account) {
Account = account;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public String getPassword_true() {
return Password_true;
}
public void setPassword_true(String password_true) {
Password_true = password_true;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getCompany() {
return Company;
}
public void setCompany(String company) {
Company = company;
}
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
@Override
public String toString() {
return "User [id=" + id + ", Account=" + Account + ", Password="
+ Password + ", Password_true=" + Password_true + ", Name="
+ Name + ", Company=" + Company + ", Phone=" + Phone + "]";
}
}
结合数据库登录注册模块,登录成功之后跳到WebView的更多相关文章
- iOS开发一个用户登录注册模块需要解决的坑
最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...
- 阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-8 优化Swagger2显示
左侧的全是英文 忽略api 把HelloController也忽略掉 重启api的服务,刷新页面.只剩下了passport的Controller 给passport接口加上注解. 重启服务,并刷新页面 ...
- Java入门:用户登录与注册模块1(实践项目)——分析
任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...
- App测试经验分享之登录注册
要诀 另外自己总结了一些要诀,仅供参考: 1)快:快速操作,营造冲突的场景,例如加载过程中返回键交互,快速点击登录按钮,快速切换菜单项,快速多次上下拉刷新 2)变:手机横竖屏.手机切换语言.手机调整字 ...
- vue-cli——vue-resource登录注册实例
前言 使用vue-resource请求接口非常方便,在使用前需安装vue-resource依赖并在入口文件main.js中声明. 实例功能简述 本实例只有简单的两个模块:登录和注册,主要演示如何用vu ...
- Flask框架登录日志模块编写
web扫描器网站的框架搭建逐渐进入尾声,边搭建框架的时候负责前端的小姐姐也在完善页面设计,过两天就可以进行功能点的完善了. 在扫描器中我们用到了用户登录模块,想法是初始化一个账户和密码,比如说admi ...
- swing 实现用户登录注册界面(不使用数据库)
swing 实现用户登录注册界面(不使用数据库) 实现的功能 先说一下具体实现的功能吧:用户注册后会将注册的对象存入内存中,登录时会遍历注册的对象列表,判断是否登录成功: 登录和注册界面: 本次实验分 ...
- Flask框架实现登录注册功能(mysql数据库)
前言: 本例使用Flask框架完成登录和注册操作,包括前端(index.html,regist.html)和后端(app.py)两部分,前端页面不过多介绍,直接进入后端部分: 逻辑思路: 登录部分:运 ...
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
随机推荐
- 用 javassist 来修改 class 文件
import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; public class Test { ...
- JAVASCRIPT常用API总结
目录 元素查找 class操作 节点操作 属性操作 内容操作 css操作 位置大小 事件 DOM加载完毕 绑定上下文 去除空格 Ajax JSON处理 节点遍历 元素查找 // Node docume ...
- Android Studio一些常用快捷键及快捷键冲突解决
1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家 ...
- Linux C编程学习6---字符串处理、数据转换
1.字符串 应用程序按其功能可分为数值计算.非数值计算以及输入输出操作等.非数值计算程序占相当大的比例,其核心就是字符串处理1.1.字符测试 1.1.1.测试字符是否为英文字母 int isalpha ...
- Denormalization 2
In a relational database, denormalization is an approach to speeding up read performance (data retri ...
- WiX Toolset 教程索引页
注意:虽然WiX Toolset功能强大,但其学习曲线相对较高.请慎重选择: 若没有足够时间.没心思搞的请绕行至inno setup.installshield.nisi.setupfactory.. ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
- js随笔
在js中,一个[]认为是数组:{}认为是Json对象:
- HDU 4467 分块
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4467 题意:给定n个点m条边的无向图,点被染色(黑0/白1),边带边权.然后q个询问.询问分为两种: ...
- BZOJ 3110 [Zjoi2013]K大数查询 ——整体二分
[题目分析] 整体二分显而易见. 自己YY了一下用树状数组区间修改,区间查询的操作. 又因为一个字母调了一下午. 貌似树状数组并不需要清空,可以用一个指针来维护,可以少一个log 懒得写了. [代码] ...