Android程序开发之数据存储(一): 使用sqlite 进行登录注册
16lz
2021-01-24
Android 使用sqlite 进行登录注册
import引入的需要改为调用自己jar包
直接上代码
MainActivity.java(即LoginActivity.java)
package com.example.treasure;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.example.treasure.MainActivity;import com.example.treasure.MActivity;import com.example.treasure.database.UserService;public class MainActivity extends Activity {private Button enter=null;private Button btnlogin=null;private Button btnregister=null;private EditText username=null;private EditText passtext=null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main); btnlogin = (Button)findViewById(R.id.btnlogin); btnregister = (Button)findViewById(R.id.btnregister); username = (EditText)findViewById(R.id.username); passtext = (EditText)findViewById(R.id.passtext);enter=(Button)findViewById(R.id.enter); enter.setOnClickListener(listener); btnlogin.setOnClickListener(listener); btnregister.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener(){public void onClick(View v){Button btn=(Button)v;switch (btn.getId()){case R.id.enter:Toast.makeText(MainActivity.this, "想要获取更多的实用信息,请注册登录吧", Toast.LENGTH_LONG).show();Intent intent11=new Intent();intent11.setClass(MainActivity.this,Lyb_Activity.class);startActivity(intent11);break;case R.id.btnlogin:String name=username.getText().toString();String pass=passtext.getText().toString();Log.i("TAG",name+"_"+pass);UserService uService=new UserService(MainActivity.this);boolean flag=uService.login(name, pass);if(flag){Log.i("TAG","登录成功");Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG).show();Intent intent15=new Intent();intent15.setClass(MainActivity.this,MActivity.class);startActivity(intent15);}else{Log.i("TAG","登录失败");Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_LONG).show();} break;case R.id.btnregister:Intent intent011=new Intent();intent011.setClass(MainActivity.this,RegisterActivity.class);startActivity(intent011);break;}}};}
RegisterActivity.java
package com.example.treasure;import android.app.Activity;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.RadioButton;import android.widget.RadioGroup;import android.widget.Toast;import com.example.treasure.database.User;import com.example.treasure.database.UserService;public class RegisterActivity extends Activity {EditText username;EditText password;EditText age;RadioGroup sex;Button register;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.register);findViews();register.setOnClickListener(new OnClickListener() {public void onClick(View v) {String name=username.getText().toString().trim();String pass=password.getText().toString().trim();String agestr=age.getText().toString().trim();String sexstr=((RadioButton)RegisterActivity.this.findViewById(sex.getCheckedRadioButtonId())).getText().toString();Log.i("TAG",name+"_"+pass+"_"+agestr+"_"+sexstr);UserService uService=new UserService(RegisterActivity.this);User user=new User();user.setUsername(name);user.setPassword(pass);user.setAge(Integer.parseInt(agestr));user.setSex(sexstr);uService.register(user);Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_LONG).show();}});}private void findViews() {username=(EditText) findViewById(R.id.usernameRegister);password=(EditText) findViewById(R.id.passwordRegister);age=(EditText) findViewById(R.id.ageRegister);sex=(RadioGroup) findViewById(R.id.sexRegister);register=(Button) findViewById(R.id.Register);}}
数据库辅助函数DatabaseHelper.java
package com.example.treasure.database;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DatabaseHelper extends SQLiteOpenHelper {static String name="user.db";static int dbVersion=1;public DatabaseHelper(Context context) {super(context, name, null, dbVersion);}//只在创建的时候用一次public void onCreate(SQLiteDatabase db) {String sql="create table user(id integer primary key autoincrement,username varchar(20),password varchar(20),age integer,sex varchar(2))";db.execSQL(sql);}public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}UserService.java
package com.example.treasure.database;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.example.treasure.database.User;public class UserService {private DatabaseHelper dbHelper;public UserService(Context context){dbHelper=new DatabaseHelper(context);}//登录用public boolean login(String username,String password){SQLiteDatabase sdb=dbHelper.getReadableDatabase();String sql="select * from user where username=? and password=?";Cursor cursor=sdb.rawQuery(sql, new String[]{username,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(username,password,age,sex) values(?,?,?,?)";Object obj[]={user.getUsername(),user.getPassword(),user.getAge(),user.getSex()};sdb.execSQL(sql, obj);return true;}}
User.java
package com.example.treasure.database;import java.io.Serializable;public class User implements Serializable{private int id;private String username;private String password;private int age;private String sex;public User() {super();// TODO Auto-generated constructor stub}public User(String username, String password, int age, String sex) {super();this.username = username;this.password = password;this.age = age;this.sex = sex;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", password="+ password + ", age=" + age + ", sex=" + sex + "]";}}
UserTest.java
package com.example.treasure.database;import android.test.AndroidTestCase;import android.util.Log;import com.example.treasure.database.User;import com.example.treasure.database.DatabaseHelper;import com.example.treasure.database.UserService;public class UserTest extends AndroidTestCase {public void datatest() throws Throwable{DatabaseHelper dbhepler=new DatabaseHelper(this.getContext());dbhepler.getReadableDatabase();}//注册public void registerTest() throws Throwable{UserService uService=new UserService(this.getContext());User user=new User();user.setUsername("renhaili");user.setPassword("123");user.setAge(20);user.setSex("女");uService.register(user);}public void loginTest() throws Throwable{UserService uService=new UserService(this.getContext());String username="renhaili";String password="123";boolean flag=uService.login(username, password);if(flag){Log.i("TAG","登录成功");}else{Log.i("TAG","登录失败");}}}main.xml(即login.xml)
<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:background="@drawable/background"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="treasure\n\n" android:id="@+id/title" android:textSize="25sp" android:gravity="center"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户:" android:layout_marginBottom="25dp" android:id="@+id/user" android:layout_toLeftOf="@+id/passtext" android:layout_below="@id/title"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/username" android:layout_alignBottom="@id/user" android:layout_toRightOf="@id/user" android:hint="username"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码:" android:id="@+id/pass" android:layout_alignBottom="@id/passtext"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/passtext" android:layout_below="@id/username" android:layout_toRightOf="@id/pass" android:hint="password"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="\n" android:id="@+id/title1" android:textSize="25sp" android:gravity="center" android:layout_below="@id/passtext"/> <Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/btnlogin" android:background="#FF0000" android:layout_below="@id/title1" android:layout_marginBottom="30dp" android:text="登录" android:layout_centerHorizontal="true"/> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/enter" android:layout_below="@id/btnlogin" android:text="游客入口" android:textColor="#FF0000" android:layout_marginLeft="80dp"/> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/btnregister" android:layout_below="@id/btnlogin" android:text="注册" android:textColor="#FF0000" android:layout_toRightOf="@id/enter"/> </RelativeLayout>
register.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text="欢迎进入注册界面!" android:textSize="30dp" android:textStyle="bold" /> <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="用户名:" /> <EditText android:id="@+id/usernameRegister" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入用户名!!!" /> </TableRow> <TableRow > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="密码:" /> <EditText android:id="@+id/passwordRegister" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入密码!!!" /> </TableRow> <TableRow > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="年龄:" /> <EditText android:id="@+id/ageRegister" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入年龄!!!" /> </TableRow> <TableRow > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="性别:" android:textSize="20dp" /> <RadioGroup android:id="@+id/sexRegister" android:layout_width="fill_parent" android:layout_height="wrap_content" android:checkedButton="@+id/woman" android:orientation="horizontal" > <RadioButton android:id="@+id/nan" android:text="男" /> <RadioButton android:id="@id/woman" android:text="女" /> </RadioGroup> </TableRow> <TableRow > <TextView /> <LinearLayout > <Button android:id="@+id/Register" android:layout_width="150dp" android:layout_height="wrap_content" android:text="注册" /> </LinearLayout> </TableRow> </TableLayout></LinearLayout>
更多相关文章
- android实现九宫格程序
- Android(安卓)密码的隐藏和显示
- android apk包签名和align
- Android(安卓)实现仿支付宝的密码均分输入框
- Android介绍如何生成keystore 文件并使用
- Android(安卓)Debug keystore及通过Android(安卓)Studio编译器获
- Android客户端向服务器端传值——登录实现(一)
- Android(安卓)利用命令生成keystore文件
- android之实现注册功能