300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 利用SQLite数据库进行用户名 密码的注册和登录验证

利用SQLite数据库进行用户名 密码的注册和登录验证

时间:2023-06-10 16:47:08

相关推荐

利用SQLite数据库进行用户名 密码的注册和登录验证

利用SQLite数据库进行存储用户名、密码等等其他信息

首先是activity_main布局界面

<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/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"/><EditTextandroid:id="@+id/username"android:layout_gravity="center"android:layout_marginTop="30sp"android:hint="用户名"android:layout_width="300sp"android:layout_height="wrap_content"/><EditTextandroid: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"/><Buttonandroid: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"><Viewandroid:id="@+id/view1"android:layout_width="300sp"android:layout_height="1sp"android:background="#d7f2f7"android:layout_centerHorizontal="true"/><Viewandroid:id="@+id/view2"android:layout_width="1sp"android:layout_height="40sp"android:background="#d7f2f7"android:layout_centerInParent="true"android:layout_below="@+id/view1"/><TextViewandroid: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"/><TextViewandroid: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="/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;@Overrideprotected 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(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubintent=new Intent(MainActivity.this,zhuce.class);startActivity(intent);}});//启动注册页面TextView textview=(TextView)findViewById(R.id.zhuce);textview.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent a=new Intent(MainActivity.this,zhuce.class);startActivity(a);}});//启动随便看看页面TextView textview1=(TextView)findViewById(R.id.suibian);textview1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubIntent 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 stubString sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME+ " (name varchar(30) primary key,password varchar(30));";try{db.execSQL(sql);}catch(SQLException ex){}}@Overridepublic 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}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubdb.execSQL("create table username( name varchar(30) primary key,password varchar(30))");}@Overridepublic 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(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString 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对话框中的“确定”按钮,会跳转到程序的主界面去,相当于直接点击“随便看看”按钮,大家可以自己编写后面的程序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。