Android Studio2

今天来完善mainactivity文件,通过这个文件来编写页面输入框和按钮的功能事务来实现页面跳转和键盘输入功能
package com.example.try1.util;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.try1.R;

import android.content.ContentValues;
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.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
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.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private EditText etName, etAge, etHeight, etWeight;
private Button btnInsert, btnQuery, btnUpdate, btnDelete;
private TextView tvResult;
private MyDatabaseHelper dbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 初始化视图
    etName = findViewById(R.id.etName);
    etAge = findViewById(R.id.etAge);
    etHeight = findViewById(R.id.etHeight);
    etWeight = findViewById(R.id.etWeight);
    btnInsert = findViewById(R.id.btnInsert);
    btnQuery = findViewById(R.id.btnQuery);
    btnUpdate = findViewById(R.id.btnUpdate);
    btnDelete = findViewById(R.id.btnDelete);
    tvResult = findViewById(R.id.tvResult);

    // 初始化数据库帮助类
    dbHelper = new MyDatabaseHelper(this);

    // 插入数据
    btnInsert.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 获取输入框的值
            String name = etName.getText().toString().trim();
            String age = etAge.getText().toString().trim();
            String height = etHeight.getText().toString().trim();
            String weight = etWeight.getText().toString().trim();

            // 检查输入是否为空
            if (name.isEmpty() || age.isEmpty() || height.isEmpty() || weight.isEmpty()) {
                Toast.makeText(MainActivity.this, "Please fill all fields", Toast.LENGTH_SHORT).show();
            } else {
                // 创建 User 对象并设置所有字段
                User user = new User();
                user.setName(name);
                user.setAge(age);
                user.setHeight(height);
                user.setWeight(weight);

                // 插入数据
                insertData(user);

                // 清空输入框
                etName.setText("");
                etAge.setText("");
                etHeight.setText("");
                etWeight.setText("");
            }
        }
    });

    // 查询数据
    btnQuery.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            queryData();
        }
    });

    // 更新数据
    btnUpdate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 获取输入框的值
            String name = etName.getText().toString().trim();
            String age = etAge.getText().toString().trim();
            String height = etHeight.getText().toString().trim();
            String weight = etWeight.getText().toString().trim();

            // 检查输入是否为空
            if (name.isEmpty() || age.isEmpty() || height.isEmpty() || weight.isEmpty()) {
                Toast.makeText(MainActivity.this, "Please fill all fields", Toast.LENGTH_SHORT).show();
            } else {
                // 创建 User 对象
                User user = new User();
                user.setName(name);
                user.setAge(age);
                user.setHeight(height);
                user.setWeight(weight);

                // 假设更新 ID 为 1 的数据
                updateData(user, 1);

                // 清空输入框
                etName.setText("");
                etAge.setText("");
                etHeight.setText("");
                etWeight.setText("");
            }
        }
    });

    // 删除数据
    btnDelete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            deleteData(1); // 假设删除 ID 为 1 的数据
        }
    });
}

// 插入数据
private void insertData(User user) {
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();

    // 将用户对象的各个字段放入 ContentValues
    values.put(MyDatabaseHelper.COLUMN_NAME, user.getName());
    values.put(MyDatabaseHelper.COLUMN_AGE, user.getAge());
    values.put(MyDatabaseHelper.COLUMN_HEIGHT, user.getHeight());
    values.put(MyDatabaseHelper.COLUMN_WEIGHT, user.getWeight());

    // 插入数据
    long result = db.insert(MyDatabaseHelper.TABLE_NAME, null, values);
    if (result == -1) {
        Toast.makeText(this, "Insert failed", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Insert successful", Toast.LENGTH_SHORT).show();
    }

    db.close();
}

// 查询数据
private void queryData() {
    SQLiteDatabase db = dbHelper.getReadableDatabase();
    Cursor cursor = db.query(MyDatabaseHelper.TABLE_NAME, null, null, null, null, null, null);

    List<User> userList = new ArrayList<>();
    if (cursor.moveToFirst()) {
        do {
            @SuppressLint("Range") int id = cursor.getInt(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_ID));
            @SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_NAME));
            @SuppressLint("Range") String age = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_AGE));
            @SuppressLint("Range") String height = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_HEIGHT));
            @SuppressLint("Range") String weight = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_WEIGHT));
            User user = new User(id, name, age, height, weight);
            userList.add(user);
        } while (cursor.moveToNext());
    }

    // 将查询结果显示在 TextView 中
    StringBuilder result = new StringBuilder();
    for (User user : userList) {
        result.append(user.toString()).append("\n");
    }

    if (result.length() == 0) {
        result.append("No data found");
    }

    tvResult.setText(result.toString());
    cursor.close();
    db.close();
}

// 更新数据
private void updateData(User user, int id) {
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();

    // 将用户对象的各个字段放入 ContentValues
    values.put(MyDatabaseHelper.COLUMN_NAME, user.getName());
    values.put(MyDatabaseHelper.COLUMN_AGE, user.getAge());
    values.put(MyDatabaseHelper.COLUMN_HEIGHT, user.getHeight());
    values.put(MyDatabaseHelper.COLUMN_WEIGHT, user.getWeight());

    // 更新数据
    int rowsAffected = db.update(MyDatabaseHelper.TABLE_NAME, values,
            MyDatabaseHelper.COLUMN_ID + " = ?", new String[]{String.valueOf(id)});
    if (rowsAffected > 0) {
        Toast.makeText(this, "Update successful", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Update failed", Toast.LENGTH_SHORT).show();
    }

    db.close();
}

// 删除数据
private void deleteData(int id) {
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    int rowsDeleted = db.delete(MyDatabaseHelper.TABLE_NAME,
            MyDatabaseHelper.COLUMN_ID + " = ?", new String[]{String.valueOf(id)});
    if (rowsDeleted > 0) {
        Toast.makeText(this, "Delete successful", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Delete failed", Toast.LENGTH_SHORT).show();
    }

    db.close();
}

}

这篇代码包括了增删改查函数的具体功能,在需要时调用时即可

posted @ 2025-03-15 18:23  鱼一直摸  阅读(9)  评论(0)    收藏  举报