Android Studio2

news/2025/3/15 18:26:39/文章来源:https://www.cnblogs.com/dengyizhidai/p/18774017

今天来完善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() {@Overridepublic 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() {@Overridepublic void onClick(View v) {queryData();}});// 更新数据btnUpdate.setOnClickListener(new View.OnClickListener() {@Overridepublic 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() {@Overridepublic void onClick(View v) {deleteData(1); // 假设删除 ID 为 1 的数据}});
}// 插入数据
private void insertData(User user) {SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();// 将用户对象的各个字段放入 ContentValuesvalues.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();// 将用户对象的各个字段放入 ContentValuesvalues.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();
}

}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/899311.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git更新子模块

1.问题 如图,我们从GitHub上克隆下来一个库,内部还有类似这种右边蓝色S的表示的是该工程的子模块部分,一般初始为空,导致错误2.解决 我们需要用git submodule update --recursive --remote命令去更新初始化我们的子模块

pycharm2024下载安装一键激活2099年

​软件包和激活工具下载地址,关地球号:QStockView,发送pycharm,立刻发给你,全免费; 激活之后如下: 激活方式,打开压缩包,然后找到下面的文件,双击打开提示成功,之后,就可以了;去重新打开pycharm,就可以了; 中文设置如下: 添加图片注释,不超过 140 字(可选…

日期问题中的格式控制

define _CRT_SECURE_NO_WARNINGS include <stdio.h> include <string.h> using namespace std; void NextDay(int &year, int &month, int &day) { //存储一下月份和天数的关系 int dayOfMonth[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int is…

Windows管理小工具

Windows 管理小工具 概述 Windows 管理小工具 是一个基于批处理脚本的多功能工具,旨在帮助用户快速管理 Windows 系统中的常见设置和功能。通过简单的菜单操作,用户可以轻松完成 Windows 11 右键菜单管理、桌面图标小箭头管理、卸载 Windows 11 小组件、安装 Office、激活 Wi…

2025.3.11 php登录,连接数据库

1,$GET和$POST的区别 2, 3, 4, 5,HTML不能直接从编辑器上打开

Vue2学习5-v-model原理、表单类组件封装及v-model简化、.sync修饰符 、ref和$refs、$nextTick、自定义指令(全局、局部)、插槽(默认、具名)及商品列表案例

Vue2 v-model原理 v-model本质就是一个语法糖(一种编程语言的语法特性,允许以更简洁、易读的方式表达某些操作) 例如在输入框中,是value属性和input事件的合并 作用:实现数据的双向绑定数据变,视图跟着变视图变,数据跟着变例: $event可以获取事件的形参 <template&g…

Vue2学习5-

Vue2 v-model原理 v-model本质就是一个语法糖(一种编程语言的语法特性,允许以更简洁、易读的方式表达某些操作) 例如在输入框中,是value属性和input事件的合并 作用:实现数据的双向绑定数据变,视图跟着变视图变,数据跟着变例: $event可以获取事件的形参 <template&g…

C# 23种计模式

以下是23种设计模式:

【阿里淘天】3月15日暑期实习机试-第一题-连续非空子数组

连续非空子数组 题面思路 正向求解的话,需要枚举所有的子数组,复杂度会来到\(O(n^3)\),完全不可行,在观察题目输入描述,\(a_i\)的取值范围非常小,故我们考虑反向求解(这也是非常经典的思路,无法直接计数,我们就计算每个答案的贡献是多少) 利用类似滑动窗口的思想,去…

python的基本运用(7)——函数(内置函数)

一、python的内建函数二、内置函数使用 (1)format()函数 1.定义:是一格式化字符串,该函数增强了字符串格式的功能. 2.基本语法是通过{}来代替一起拿% 3.案例 a.设置指定位置,默认暑顺序 hz="{}".format("dcs","18")print(hz) b.按照指定的索引…

LeetCode53最大子数组和——贪心求解

int maxSubArray(vector<int>& nums) {int len = nums.size();int max=INT_MIN;int sum=0;for(int i=0;i<len;i++){sum+=nums[i];if(max<sum) max=sum;if(sum<0) sum=0;}return max;}这是根据代码的写出的max与sum的状态,笔者认为最重要的一点在于理解连续…

推荐一个查看Windows文件夹大小的软件

最近笔记本越来越卡,C盘100G几乎全被占用,所以就想查看是哪个文件占用了C盘, 但是Windows自带的又不好用,于是再网上找了一下 https://windirstat.net/ 发现了这个软件,非常好用,一目了然,免费,可以安装也可以直接解压, 可以查看每个文件和文件夹的大小,占比, 按文件…