利用SQLite数据库进行用户名、密码的注册和登录验证
2014-06-27 13:33
701 查看
利用SQLite数据库进行存储用户名、密码等等其他信息
首先是activity_main布局界面
底下的两个按钮,“注册”是跳转到注册用户名和密码界面;“随便看看”是跳过注册登录页面,直接进入到主程序,方便路人进行浏览操作。
接下来是注册页面的布局zhuce.xml
其中电子邮箱的验证功能没有做,大家可以跳过这一步的填写注册
下面是MainActivity.class
当然了,若想用到SQLite数据库,就必须创建一个子类DatebaseHelper.java
注册页的zhuce.java
点击dialog对话框中的“确定”按钮,会跳转到程序的主界面去,相当于直接点击“随便看看”按钮,大家可以自己编写后面的程序
首先是activity_main布局界面
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#74d6e6" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/banner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/banner" android:layout_gravity="center" android:layout_marginTop="90sp"/> <EditText android:id="@+id/username" android:layout_gravity="center" android:layout_marginTop="30sp" android:hint="用户名" android:layout_width="300sp" android:layout_height="wrap_content"/> <EditText android:id="@+id/pasw" android:layout_gravity="center" android:layout_marginTop="30sp" android:hint="密码" android:password="true" android:layout_width="300sp" android:layout_height="wrap_content"/> <Button android:id="@+id/tijiao" android:layout_width="300sp" android:text="提交" android:layout_marginTop="30sp" android:layout_height="wrap_content" android:layout_gravity="center"/> </LinearLayout> <RelativeLayout android:id="@+id/relaativelayout1" android:layout_width="fill_parent" android:layout_alignParentBottom="true" android:layout_height="wrap_content" android:layout_marginBottom="10sp"> <View android:id="@+id/view1" android:layout_width="300sp" android:layout_height="1sp" android:background="#d7f2f7" android:layout_centerHorizontal="true" /> <View android:id="@+id/view2" android:layout_width="1sp" android:layout_height="40sp" android:background="#d7f2f7" android:layout_centerInParent="true" android:layout_below="@+id/view1"/> <TextView android:id="@+id/zhuce" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册" android:textSize="20sp" android:layout_toLeftOf="@+id/view2" android:layout_marginRight="30sp" android:layout_marginTop="10sp" /> <TextView android:id="@+id/suibian" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="随便看看" android:textSize="20sp" android:layout_toRightOf="@+id/view2" android:layout_marginLeft="30sp" android:layout_marginTop="10sp" /> </RelativeLayout> </RelativeLayout>
底下的两个按钮,“注册”是跳转到注册用户名和密码界面;“随便看看”是跳过注册登录页面,直接进入到主程序,方便路人进行浏览操作。
接下来是注册页面的布局zhuce.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/teview1" android:layout_width="fill_parent" android:layout_height="70sp" android:text="注册" android:background="#74d6e6" android:textSize="40sp" android:paddingTop="10sp" android:paddingLeft="20sp"/> <EditText android:id="@+id/editview1" android:layout_marginTop="50sp" android:layout_width="300sp" android:layout_height="wrap_content" android:layout_gravity="center" android:hint="用户名"/> <EditText android:id="@+id/editview2" android:layout_marginTop="30sp" android:layout_width="300sp" android:layout_height="wrap_content" android:layout_gravity="center" android:hint="密码" android:password="true"/> <EditText android:id="@+id/editview3" android:layout_marginTop="30sp" android:layout_width="300sp" android:layout_height="wrap_content" android:layout_gravity="center" android:hint="确认密码" android:password="true"/> <EditText android:id="@+id/editview4" android:layout_marginTop="50sp" android:layout_width="300sp" android:layout_height="wrap_content" android:layout_gravity="center" android:hint="电子邮箱"/> <Button android:id="@+id/tijiao" android:layout_width="300sp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="30sp" android:text="提交注册"/> </LinearLayout>
其中电子邮箱的验证功能没有做,大家可以跳过这一步的填写注册
下面是MainActivity.class
package com.example.android_login; import android.os.Bundle; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.app.AlertDialog; public class MainActivity extends Activity { private TextView textview; //数据库名称 private static final String DATABASE_NAME="yufengtest.db"; //数据库版本号 private static final int DATABASE_VERSION=1; //表名 private static final String TABLE_NAME="username"; private DatebaseHelper databaseHelper; private SQLiteDatabase db; private Button button1; private EditText nameText,passText; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); nameText=(EditText)findViewById(R.id.username); passText=(EditText)findViewById(R.id.pasw); button1=(Button)findViewById(R.id.tijiao); textview=(TextView)findViewById(R.id.zhuce); textview.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub intent=new Intent(MainActivity.this,zhuce.class); startActivity(intent); } }); //启动注册页面 TextView textview=(TextView)findViewById(R.id.zhuce); textview.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent a=new Intent(MainActivity.this,zhuce.class); startActivity(a); } }); //启动随便看看页面 TextView textview1=(TextView)findViewById(R.id.suibian); textview1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent a=new Intent(MainActivity.this,Main.class); startActivity(a); } }); button1.setOnClickListener(new LoginListener()); } class LoginListener implements OnClickListener{ public void onClick(View v){ String nameString =nameText.getText().toString(); String passString=passText.getText().toString(); if(nameString.equals("")||passString.equals("")) { //弹出消息框 new AlertDialog.Builder(MainActivity.this).setTitle("错误") .setMessage("帐号或密码不能空").setPositiveButton("确定", null) .show(); }else{ isUserinfo(nameString,passString); } } } public Boolean isUserinfo(String name,String pass) { String nameString=name; String passString=pass; databaseHelper=new DatebaseHelper(MainActivity.this,DATABASE_NAME,null,DATABASE_VERSION); db = databaseHelper.getReadableDatabase(); try{ Cursor cursor=db.query(TABLE_NAME, new String[]{"name","password"},"name=?",new String[]{nameString},null,null,"password"); while(cursor.moveToNext()) { String password=cursor.getString(cursor.getColumnIndex("password")); if(passString.equals(password)) { new AlertDialog.Builder(MainActivity.this).setTitle("正确") .setMessage("成功登录").setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Intent a=new Intent(MainActivity.this,Main.class); startActivity(a); } }).show(); break; } else { Toast.makeText(this, "用户名密码不正确",Toast.LENGTH_LONG).show(); break; } } }catch(SQLiteException e){ CreatTable(); } return false; } private void CreatTable() { // TODO Auto-generated method stub String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (name varchar(30) primary key,password varchar(30));"; try{ db.execSQL(sql); }catch(SQLException ex){} } @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; } }
当然了,若想用到SQLite数据库,就必须创建一个子类DatebaseHelper.java
package com.example.android_login; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class DatebaseHelper extends SQLiteOpenHelper { //数据库名称 private static final String DATABASE_NAME="yufengtest.db"; //数据库版本号 private static final int DATABASE_VERSION=1; //数据库SQL语句 添加一个表 public DatebaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, DATABASE_NAME, factory, DATABASE_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("create table username( name varchar(30) primary key,password varchar(30))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
注册页的zhuce.java
package com.example.android_login; import android.app.Activity; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class zhuce extends Activity { private EditText edittext1,edittext2,edittext3; private Button button; private DatebaseHelper databaseHelper; //数据库名称 private static final String DATABASE_NAME="yufengtest.db"; //数据库版本号 private static final int DATABASE_VERSION=1; private static final String TABLE_NAME="username"; private SQLiteDatabase db; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.zhuce); edittext1=(EditText)findViewById(R.id.editview1); edittext2=(EditText)findViewById(R.id.editview2); edittext3=(EditText)findViewById(R.id.editview3); button=(Button)findViewById(R.id.tijiao); button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String namestring = edittext1.getText().toString(); String passstring = edittext2.getText().toString(); String repassstring=edittext3.getText().toString(); if(passstring.equals(repassstring)) { databaseHelper=new DatebaseHelper(zhuce.this,DATABASE_NAME,null,DATABASE_VERSION); db = databaseHelper.getReadableDatabase(); db.execSQL("insert into username (name,password) values(?,?)",new String[]{namestring,passstring}); Toast.makeText(zhuce.this, "注册成功!", Toast.LENGTH_LONG).show(); Intent b=new Intent(zhuce.this,MainActivity.class); startActivity(b); } else { Toast.makeText(zhuce.this,"两次密码不一致", Toast.LENGTH_LONG).show(); } } }); } }
点击dialog对话框中的“确定”按钮,会跳转到程序的主界面去,相当于直接点击“随便看看”按钮,大家可以自己编写后面的程序
相关文章推荐
- 1 完成登录页面(到记事本文件进行密码和用户名的验证)。 2 完成 用户注册页面(将注册信息显示在本页面 div 中)。
- 利用js进行表单验证:判断用户名和密码非空
- PHP登录对用户名、密码进行验证及登录状态操作
- Python 利用StringVar接收用户输入, 制作用户名和密码的验证登录窗口
- QuickCSharp框架开发(18)------加密用户名和密码数据与数据库读出的密码进行哈希比较(验证用户是否成功登录)
- 在进行验证的时候,用户名登录注册,然后没有输入用户名,提示“请输入用户名!”,并且出现focus()函数,表示焦点在用户名输入框。
- [JSP] 利用Servlet对用户名和密码进行服务器端验证
- 关于安卓登录注册页面构建(包含用户名密码验证+记住密码+再按一次返回退出)
- [JSP] 利用JavaScript来用户名和密码进行客户端的验证
- easyUI(四) -- SpringMVC+MyBatis怎么验证用户名和密码进行登录
- Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)
- VC SQL 登录对话框数据库对用户名和密码进行验证代码!
- IIS 下网站提示输入用户名密码进行身份验证解决方法
- 利用hashtable模拟实现权限验证(同map思想-->只能有一个用户名,可重复密码)以及增删查改操作
- servlet入门实例:servlet验证登录用户名和密码
- 温习ASP调用C#的DLL并实现用户名密码进行域验证反馈结果
- IIS 访问需要用户名和密码 (需要进行身份验证)
- 设为首页收藏本站 切换到宽版 Android开发论坛 - 安卓开发论坛 - Android开发 - 安卓论坛 用户名 自动登录 找回密码 密码 注册 人人连接登陆 用新浪微博连接
- Struts框架中利用jquery/ajax 验证用户名是否为空,是否已注册