From ceabe72e56e8aec0efd5d31047e3df084422a4b0 Mon Sep 17 00:00:00 2001 From: yx <2052246757@qq.com> Date: Sat, 15 Apr 2023 22:47:43 +0800 Subject: [PATCH] test4 --- Test1/android/database/sqlite/annotations.xml | 1 + Test1/app/src/main/AndroidManifest.xml | 4 ++ .../example/test1/Activity/IndexActivity.java | 4 ++ .../example/test1/Activity/MainActivity.java | 69 +++++++++++-------- .../test1/Activity/registerActivity.java | 24 ++++++- .../main/java/com/example/test1/Database.java | 56 +++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 1 - Test1/app/src/main/res/layout/user.xml | 12 ++-- 8 files changed, 135 insertions(+), 36 deletions(-) create mode 100644 Test1/android/database/sqlite/annotations.xml create mode 100644 Test1/app/src/main/java/com/example/test1/Activity/IndexActivity.java create mode 100644 Test1/app/src/main/java/com/example/test1/Database.java diff --git a/Test1/android/database/sqlite/annotations.xml b/Test1/android/database/sqlite/annotations.xml new file mode 100644 index 0000000..ef2fc53 --- /dev/null +++ b/Test1/android/database/sqlite/annotations.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Test1/app/src/main/AndroidManifest.xml b/Test1/app/src/main/AndroidManifest.xml index 25f2fad..7cebf00 100644 --- a/Test1/app/src/main/AndroidManifest.xml +++ b/Test1/app/src/main/AndroidManifest.xml @@ -17,6 +17,10 @@ + diff --git a/Test1/app/src/main/java/com/example/test1/Activity/IndexActivity.java b/Test1/app/src/main/java/com/example/test1/Activity/IndexActivity.java new file mode 100644 index 0000000..76cfe0c --- /dev/null +++ b/Test1/app/src/main/java/com/example/test1/Activity/IndexActivity.java @@ -0,0 +1,4 @@ +package com.example.test1.Activity; + +public class IndexActivity { +} diff --git a/Test1/app/src/main/java/com/example/test1/Activity/MainActivity.java b/Test1/app/src/main/java/com/example/test1/Activity/MainActivity.java index 5606191..ffd3514 100644 --- a/Test1/app/src/main/java/com/example/test1/Activity/MainActivity.java +++ b/Test1/app/src/main/java/com/example/test1/Activity/MainActivity.java @@ -1,31 +1,27 @@ package com.example.test1.Activity; -import androidx.appcompat.app.AppCompatActivity; - 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 com.example.test1.R; +import androidx.appcompat.app.AppCompatActivity; -public class MainActivity extends AppCompatActivity { - Button register; +import com.example.test1.Database; +import com.example.test1.R; - private EditText usernameEdit, passwordEdit; +public class MainActivity extends AppCompatActivity implements View.OnClickListener { + private Button register,login; + private EditText passwordEdit,usernameText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - - register = (Button)findViewById(R.id.register); - register.setOnClickListener(this::onClick); - Button login = (Button) findViewById(R.id.login); - login.setOnClickListener(this::onClick1); - init(); } @@ -33,8 +29,12 @@ public class MainActivity extends AppCompatActivity { * 界面组件初始化 */ private void init() { - usernameEdit = findViewById(R.id.username); - passwordEdit = findViewById(R.id.password); + usernameText=findViewById(R.id.username); + passwordEdit=findViewById(R.id.password); + login=findViewById(R.id.login); + login.setOnClickListener(this::onClick1); + register=findViewById(R.id.register); + register.setOnClickListener(this::onClick); } @@ -44,24 +44,37 @@ public class MainActivity extends AppCompatActivity { } public void onClick1(View view) { switch (view.getId()){ + case R.id.register: + Intent intent1=new Intent(MainActivity.this, registerActivity.class); + startActivity(intent1); + break; case R.id.login: - validateRegister(); + if(validateLogin()){ + Intent intent = new Intent(MainActivity.this, CategoryActivity.class); + Bundle bundle=new Bundle(); + Database dateBase=new Database(MainActivity.this); + bundle.putString("username",usernameText.getText().toString()); + bundle = Database.queryUserInfo(dateBase.getReadableDatabase(), bundle); + intent.putExtras(bundle); + startActivity(intent); + } + else{ + Toast.makeText(MainActivity.this,"账号或者密码错误",Toast.LENGTH_SHORT).show(); + } break; } } - /** - * 注册验证 - */ - public void validateRegister() { - Intent intent = new Intent(MainActivity.this, CategoryActivity.class); - String username = usernameEdit.getText().toString(); - String password = passwordEdit.getText().toString(); - //这里也可以再进行其它的验证,如是否符合要求等,符合就进行下一个界面操作 - if (!username.equals("") || !password.equals("")) { - startActivity(intent); - } else { - Toast.makeText(MainActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show(); + private boolean validateLogin() { + String username=usernameText.getText().toString(); + String password=passwordEdit.getText().toString(); + Database dateBase=new Database(MainActivity.this); + SQLiteDatabase sqLiteDatabase = dateBase.getReadableDatabase(); + Cursor cursor=sqLiteDatabase.rawQuery("select * from good_user where username=? and password=?",new String[]{username,password}); + if(cursor.getCount()>0){ + return true; } + return false; } -} + +} \ No newline at end of file diff --git a/Test1/app/src/main/java/com/example/test1/Activity/registerActivity.java b/Test1/app/src/main/java/com/example/test1/Activity/registerActivity.java index 4f2980f..5f0cc51 100644 --- a/Test1/app/src/main/java/com/example/test1/Activity/registerActivity.java +++ b/Test1/app/src/main/java/com/example/test1/Activity/registerActivity.java @@ -1,6 +1,8 @@ package com.example.test1.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; @@ -13,6 +15,7 @@ import android.widget.Toast; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import com.example.test1.Database; import com.example.test1.R; import com.lljjcoder.citypickerview.widget.CityPicker; @@ -122,6 +125,10 @@ public class registerActivity extends AppCompatActivity implements View.OnClickL bundle.putString("sex", sexStr); bundle.putString("city", city); intent.putExtras(bundle); + //用SQLite数据库存储注册信息 + Database dateBase= new Database(registerActivity.this); + SQLiteDatabase sqLiteDatabase = dateBase.getWritableDatabase(); + insertData(sqLiteDatabase, bundle); startActivity(intent); } else { Toast.makeText(registerActivity.this, "请选择地址", Toast.LENGTH_SHORT).show(); @@ -142,4 +149,19 @@ public class registerActivity extends AppCompatActivity implements View.OnClickL //根据用户选择来改变sex的值 sexStr = checkedId == R.id.reg_man ? "男" : "女"; } -} \ No newline at end of file + + 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("good_user",null,contentValues); + sqLiteDatabase.close(); + } + + @Override + public void onPointerCaptureChanged(boolean hasCapture) { + super.onPointerCaptureChanged(hasCapture); + } +} diff --git a/Test1/app/src/main/java/com/example/test1/Database.java b/Test1/app/src/main/java/com/example/test1/Database.java new file mode 100644 index 0000000..a3a9039 --- /dev/null +++ b/Test1/app/src/main/java/com/example/test1/Database.java @@ -0,0 +1,56 @@ +package com.example.test1; + +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 Database extends SQLiteOpenHelper { + public Database(@Nullable Context context) { + + super(context, "orange", null, 1); + } + + @Override + public void onCreate(SQLiteDatabase db) { + //创建用户表 + String sql = "create table good_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) { + + } + + //插入数据 + 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("good_user", null, contentValues); + sqLiteDatabase.close(); + } + + //查询数据 + public static Bundle queryUserInfo(SQLiteDatabase sqLiteDatabase, Bundle bundle) { + String username = bundle.getString("username"); + Cursor cursor = sqLiteDatabase.rawQuery("select * from good_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; + } +} diff --git a/Test1/app/src/main/res/layout/activity_main.xml b/Test1/app/src/main/res/layout/activity_main.xml index 5b931be..a5246fc 100644 --- a/Test1/app/src/main/res/layout/activity_main.xml +++ b/Test1/app/src/main/res/layout/activity_main.xml @@ -8,7 +8,6 @@ android:background="@color/bluepurple" tools:context=".Activity.MainActivity"> - diff --git a/Test1/app/src/main/res/layout/user.xml b/Test1/app/src/main/res/layout/user.xml index a2747d0..ab1a623 100644 --- a/Test1/app/src/main/res/layout/user.xml +++ b/Test1/app/src/main/res/layout/user.xml @@ -26,7 +26,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" - android:layout_marginTop="20dp"> + android:layout_marginTop="10dp"> + android:layout_marginTop="10dp"> + android:layout_marginTop="10dp"> + android:layout_marginTop="10dp">