|
- 下面是原代碼:
- package com.smart.db;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- public class SQLite extends SQLiteOpenHelper{
- public static final String TB_NAME = "smrtDataBase";
- //構造方法
- public SQLite(Context context) {
- super(context, TB_NAME, null, 1);
- }
- /**
- * 創建數據庫表
- */
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("CREATE TABLE users (userId integer primary key autoincrement,name varchar(20),password varchar(20))");
- }
- /**
- * 當檢測與前一次創建數據庫版本不一樣時,先刪除表再創建新表
- */
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL("DROP TABLE IF EXISTS users");
- onCreate(db);
- }
- }
- package com.smart.db;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- public class UserImpl {
- private SQLite sqlite;
- private Context content;
- private SQLiteDatabase db;
- public UserImpl(Context context) {
- sqlite = new SQLite(context);
- }
- //登錄方法
- public Cursor login(String name, String pwd) {
- SQLiteDatabase database = sqlite.getReadableDatabase();
- Cursor mCursor = database.query(true, "users", new String[] { "name" },
- "name=? and password=?", new String[] { name, pwd }, null,
- null, null, null);
- return mCursor;
- }
- //保存方法
- public boolean save(String name, String password) {
- SQLiteDatabase database = sqlite.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("name", name);
- values.put("password", password);
- // 必須添加記錄,除了主鍵之處,其它都要null
- database.insert("users", "name", values);
- return true;
- }
- }
- package com.smart.loginActivity;
- import com.smart.db.UserImpl;
- import android.app.Activity;
- import android.database.Cursor;
- 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 LoginMain extends Activity {
- private static final String TAG = "LoginMain";
- private Button ok;
- private Button exit;
- private EditText name;
- private EditText password;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);//得到控件
- ok = (Button) findViewById(R.id.ok);
- exit = (Button) findViewById(R.id.exit);
- name = (EditText) findViewById(R.id.username);
- password = (EditText) findViewById(R.id.password);
- ok.setOnClickListener(new OnClickListener() {//方法編寫
- @Override
- public void onClick(View v) {
- Log.i(TAG, name.getText().toString() + "<----passord---->"
- + password.getText().toString());
- try {
- UserImpl impl = new UserImpl(LoginMain.this);
- Cursor cursor = impl.login(name.getText().toString(), password.getText().toString());// 得到記錄
- if (cursor.moveToNext()) {//進行判斷數據庫當中是否有記得
- Toast.makeText(LoginMain.this, "成功登錄!", Toast.LENGTH_LONG)
- .show();
- } else {
- Toast.makeText(LoginMain.this, "你的用戶名或密碼錯誤,請重新輸入",
- Toast.LENGTH_LONG).show();
- name.setText("");
- password.setText("");
- }
- } catch (Exception e) {
- Log.i(TAG, "報錯了");
- }
- }
- });
- //取消
- exit.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Log.i(TAG, name.getText().toString() + "<----passord---->"
- + password.getText().toString());
- Toast.makeText(LoginMain.this, "你點擊了取消!", Toast.LENGTH_LONG)
- .show();
- finish();
- }
- });
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content">
- <TextView
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:text="@string/userName"
- />
- <EditText
- android:layout_width="200dip"
- android:layout_height="wrap_content"
- android:textSize="15dip"
- android:id="@+id/username"
- />
- </LinearLayout>
- <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content">
- <TextView
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:text="@string/userPwd"
- />
- <EditText
- android:layout_width="200dip"
- android:layout_height="wrap_content"
- android:textSize="15dip"
- android:id="@+id/password"
- android:password="true"
- />
- </LinearLayout>
- <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content">
- <Button
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:text="@string/ok"
- android:id="@+id/ok"
- />
- <Button
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:text="@string/exit"
- android:id="@+id/exit"
- />
- </LinearLayout>
- </LinearLayout>