Android程序开发之数据存储(一): 使用sqlite 进行登录注册

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;
	@Override
	public 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;
	}
	@Override
	public 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,sqlite)