最近刚刚做了一个模块,在本地建立一个数据库,存储注册的账号,登录的时候取出,正确则登录,登录之后跳到一个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的更多相关文章

  1. iOS开发一个用户登录注册模块需要解决的坑

    最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...

  2. 阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-8 优化Swagger2显示

    左侧的全是英文 忽略api 把HelloController也忽略掉 重启api的服务,刷新页面.只剩下了passport的Controller 给passport接口加上注解. 重启服务,并刷新页面 ...

  3. Java入门:用户登录与注册模块1(实践项目)——分析

    任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...

  4. App测试经验分享之登录注册

    要诀 另外自己总结了一些要诀,仅供参考: 1)快:快速操作,营造冲突的场景,例如加载过程中返回键交互,快速点击登录按钮,快速切换菜单项,快速多次上下拉刷新 2)变:手机横竖屏.手机切换语言.手机调整字 ...

  5. vue-cli——vue-resource登录注册实例

    前言 使用vue-resource请求接口非常方便,在使用前需安装vue-resource依赖并在入口文件main.js中声明. 实例功能简述 本实例只有简单的两个模块:登录和注册,主要演示如何用vu ...

  6. Flask框架登录日志模块编写

    web扫描器网站的框架搭建逐渐进入尾声,边搭建框架的时候负责前端的小姐姐也在完善页面设计,过两天就可以进行功能点的完善了. 在扫描器中我们用到了用户登录模块,想法是初始化一个账户和密码,比如说admi ...

  7. swing 实现用户登录注册界面(不使用数据库)

    swing 实现用户登录注册界面(不使用数据库) 实现的功能 先说一下具体实现的功能吧:用户注册后会将注册的对象存入内存中,登录时会遍历注册的对象列表,判断是否登录成功: 登录和注册界面: 本次实验分 ...

  8. Flask框架实现登录注册功能(mysql数据库)

    前言: 本例使用Flask框架完成登录和注册操作,包括前端(index.html,regist.html)和后端(app.py)两部分,前端页面不过多介绍,直接进入后端部分: 逻辑思路: 登录部分:运 ...

  9. android安卓Sqlite数据库实现用户登录注册

    看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...

随机推荐

  1. C语言学习笔记二

    第二章 数组 一,定义: 数组是有序数据的结合,同一数据类型 整型数组     int arr[10]={0,1,2,4,5,6,7,8,9}; 字符数组     char str[6]={'h',' ...

  2. iOS 企业证书的使用文档

    IN-HOUSE应用程序分发 下面介绍下使用网络方式进行部署的方式,用户直接在iPhone/iPad的Safari浏览器里面输入URL地址即可安装, 注意:目前对于这种企业级开发的应用程序最好的分发方 ...

  3. 一次mongodb 统计需求

    需求: 临下班运营的同事发来了一个需求,要统计数据库里某个collection的所有document 中某个字段(_id)出现的次数._id 字段的范围是0-4000. 假设collection 是这 ...

  4. jq 模板

    菜鸟教程1.4.6版本angularJS <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js ...

  5. [Tool]Inno Setup创建软件安装程序。

    这篇博客将介绍如何使用Inno Setup创建一个软件安装程序. Inno Setup官网:http://www.jrsoftware.org/isinfo.php. 可以下载到最新的Inno Set ...

  6. ArrayList常用操作

    List使用: package com.collection.list; import java.util.ArrayList; import java.util.Arrays; import jav ...

  7. DataFrame格式化

    1.如果是格式化成Json的話直接 val rdd = df.toJSON.rdd 2.如果要指定格式需要自定义函数如下: //格式化具体字段条目 def formatItem(p:(StructFi ...

  8. [转]在Eclipse中使用JUnit4进行单元测试(初级篇)

    首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感! 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除 ...

  9. jQuery实战

    1.获取标签在文档中的位置 var left = $('.selected').offset().left; var top = $('.selected').offset().top; 2.获取选中 ...

  10. DFS序+线段树+bitset CF 620E New Year Tree(圣诞树)

    题目链接 题意: 一棵以1为根的树,树上每个节点有颜色标记(<=60),有两种操作: 1. 可以把某个节点的子树的节点(包括本身)都改成某种颜色 2. 查询某个节点的子树上(包括本身)有多少个不 ...