From 95cef870f65447fe49e0bd59be8eec4e596612b6 Mon Sep 17 00:00:00 2001 From: viola Date: Mon, 17 Apr 2023 15:50:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E6=AC=A1=E5=AE=9E=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/java/com/orangesale/cn/MainActivity.java | 34 ++++++++++ .../cn/activity/RegisterActivity.java | 28 +++++++- .../orangesale/cn/activity/UserActivity.java | 1 - .../cn/dataoperation/OrangeDatabase.java | 68 +++++++++++++++++++ 4 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java diff --git a/main/java/com/orangesale/cn/MainActivity.java b/main/java/com/orangesale/cn/MainActivity.java index 9083867..3fe3d12 100644 --- a/main/java/com/orangesale/cn/MainActivity.java +++ b/main/java/com/orangesale/cn/MainActivity.java @@ -1,14 +1,19 @@ package com.orangesale.cn; import android.content.Intent; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; +import com.orangesale.cn.activity.CategoryActivity; import com.orangesale.cn.activity.RegisterActivity; +import com.orangesale.cn.dataoperation.OrangeDatabase; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button registerButton, loginButton; @@ -29,6 +34,18 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe startActivity(intent); break; case R.id.login: + //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示 + if (validateLogin()) { + Intent intent1 = new Intent(MainActivity.this, CategoryActivity.class); + Bundle bundle = new Bundle(); + OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this); + bundle.putString("username", usernameText.getText().toString()); + bundle = orangeDatabase.queryUserInfo(orangeDatabase.getReadableDatabase(), bundle); + intent1.putExtras(bundle); + startActivity(intent1); + } else { + Toast.makeText(MainActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show(); + } break; } } @@ -42,4 +59,21 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe registerButton = findViewById(R.id.register); registerButton.setOnClickListener(this); } + + /** + * 登录验证 + * + * @return + */ + private boolean validateLogin() { + String username = usernameText.getText().toString(); + String password = paswdEdit.getText().toString(); + OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this); + SQLiteDatabase sqLiteDatabase = orangeDatabase.getReadableDatabase(); + Cursor cursor = sqLiteDatabase.rawQuery("select * from user where username=? and password=?", new String[]{username, password}); + if (cursor.getCount() > 0) { + return true; + } + return false; + } } diff --git a/main/java/com/orangesale/cn/activity/RegisterActivity.java b/main/java/com/orangesale/cn/activity/RegisterActivity.java index c2d35bd..cb9e2cd 100644 --- a/main/java/com/orangesale/cn/activity/RegisterActivity.java +++ b/main/java/com/orangesale/cn/activity/RegisterActivity.java @@ -1,6 +1,8 @@ package com.orangesale.cn.activity; +import android.content.ContentValues; import android.content.Intent; +import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.os.Bundle; import android.view.View; @@ -15,6 +17,7 @@ import androidx.appcompat.app.AppCompatActivity; import com.lljjcoder.citypickerview.widget.CityPicker; import com.orangesale.cn.R; +import com.orangesale.cn.dataoperation.OrangeDatabase; public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener { private EditText usernameEdit, passwordEdit, surePasswordEdit; @@ -22,7 +25,7 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL private CityPicker cityPicker; private Button regButton; private RadioGroup sexGroup; - private String sexStr="男"; + private String sexStr = "男"; @Override @@ -107,7 +110,6 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL * 注册验证 */ public void validateRegister() { - Intent intent = new Intent(RegisterActivity.this, UserActivity.class); String username = usernameEdit.getText().toString(); String password = passwordEdit.getText().toString(); String surePassword = surePasswordEdit.getText().toString(); @@ -122,6 +124,11 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL bundle.putString("password", password); bundle.putString("sex", sexStr); bundle.putString("city", city); + //本节将使用安卓自身带的SQLite数据库的方式存储注册的信息(之前直接传输显示在界面是的方式) + OrangeDatabase orangeDatabase = new OrangeDatabase(RegisterActivity.this); + SQLiteDatabase sqLiteDatabase = orangeDatabase.getWritableDatabase(); + insertData(sqLiteDatabase, bundle); + Intent intent = new Intent(RegisterActivity.this, UserActivity.class); intent.putExtras(bundle); startActivity(intent); } else { @@ -142,4 +149,21 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL //根据用户选择来改变sex的值 sexStr = checkedId == R.id.reg_man ? "男" : "女"; } + + /** + * 插入数据库的值 + * + * @param sqLiteDatabase + * @param bundle + */ + private void insertData(SQLiteDatabase sqLiteDatabase, Bundle bundle) { + ContentValues contentValues = new ContentValues(); + contentValues.put("username", bundle.getString("username")); + contentValues.put("password", bundle.getString("password")); + contentValues.put("sex", bundle.getString("sex")); + contentValues.put("city", bundle.getString("city")); + sqLiteDatabase.insert("user", null, contentValues); + sqLiteDatabase.close(); + } } + diff --git a/main/java/com/orangesale/cn/activity/UserActivity.java b/main/java/com/orangesale/cn/activity/UserActivity.java index 8160243..b644383 100644 --- a/main/java/com/orangesale/cn/activity/UserActivity.java +++ b/main/java/com/orangesale/cn/activity/UserActivity.java @@ -10,7 +10,6 @@ import android.widget.TextView; import androidx.annotation.Nullable; -import com.orangesale.cn.MainActivity; import com.orangesale.cn.R; public class UserActivity extends Activity implements View.OnClickListener { diff --git a/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java b/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java new file mode 100644 index 0000000..97f6b51 --- /dev/null +++ b/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java @@ -0,0 +1,68 @@ +package com.orangesale.cn.dataoperation; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.os.Bundle; + +import androidx.annotation.Nullable; + +public class OrangeDatabase extends SQLiteOpenHelper { + public OrangeDatabase(@Nullable Context context) { + super(context, "0317shiyan.db", null, 1); + } + + @Override + public void onCreate(SQLiteDatabase db) { + //创建用户表 + String sql = "create table user(id integer primary key autoincrement, username varchar(50), password varchar(50),sex varchar(10),city carchar(50))"; + db.execSQL(sql); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } + + /** + * 插入数据 + * + * @param sqLiteDatabase + * @param username + * @param password + * @param sex + * @param city + */ + public void insertUser(SQLiteDatabase sqLiteDatabase, String username, String password, String sex, String city) { + ContentValues contentValues = new ContentValues(); + contentValues.put("username", username); + contentValues.put("password", password); + contentValues.put("sex", sex); + contentValues.put("city", city); + sqLiteDatabase.insert("user", null, contentValues); + sqLiteDatabase.close(); + } + + /** + * 查询数据 + * + * @param sqLiteDatabase + * @param bundle + * @return + */ + public Bundle queryUserInfo(SQLiteDatabase sqLiteDatabase, Bundle bundle) { + String username = bundle.getString("username"); + Cursor cursor = sqLiteDatabase.rawQuery("select * from user where username=?", new String[]{username}); + if (cursor != null) { + while (cursor.moveToNext()) { + bundle.putString("sex", cursor.getString(3)); + bundle.putString("city", cursor.getString(4)); + } + } + cursor.close(); + sqLiteDatabase.close(); + return bundle; + } +}