[Android]联系人-删除修改

  1. 界面显示

添加按钮点击,holder.imgDelete.setlog();具体代码

 public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {//映射布局文件,生成相应的组件View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.data_item, parent, false);MyViewHolder vh = new MyViewHolder(v);vh.txtName = v.findViewById(R.id.txtNameMainItem);vh.txtTel = v.findViewById(R.id.txtTelMainItem);vh.imgView = v.findViewById(R.id.imgMainItem);vh.imdDelete=v.findViewById(R.id.imgDelete);vh.imgEdit=v.findViewById(R.id.imgEdit);vh.imdDelete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String s=(String)view.getTag();AlertDialog dlg=new AlertDialog.Builder(view.getContext()).setTitle("删除提示:").setIcon(R.drawable.down).setMessage("是否删除"+s+"?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {String ss="delete from contacts where name='"+s+"';";db.execSQL(ss);updateData();}}).setNegativeButton("取消",null).create();dlg.show();}});vh.imgEdit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String s=(String)view.getTag();Log.d("test","Edit"+s);}});return vh;}
设置每个数据项的View组件的属性
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {cursor.moveToFirst();//先移动到第0条记录cursor.move(position);//再移动到第position条记录holder.txtName.setText(cursor.getString(0));holder.txtTel.setText(cursor.getString(1));if (1 == cursor.getInt(2))holder.imgView.setImageResource(R.drawable.avatar_male);elseholder.imgView.setImageResource(R.drawable.avatar_female);holder.imdDelete.setTag(1,cursor.getString(0));holder.imgEdit.setTag(1,cursor.getString(0));}

  1. 准备主键修改
  2. 链接数据库,实时更新,指定主键where
  3. 改变之后联系人信息更改
  4. 详细代码
    package com.example.testcontacts;import androidx.appcompat.app.AppCompatActivity;import android.database.Cursor;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.RadioButton;
    import android.widget.Toast;public class EditActivity extends AppCompatActivity {private EditText dtName, dtTel, dtAddress, dtEmail;private RadioButton rbtnMale, rbtnFemale;private Button btnEdit, btnCancel;private String sName;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_edit);initView();btnCancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {finish();}});sName = getIntent().getStringExtra("name");String s = "select name,gender,tel,address,email from contacts where name='" + sName+"';";Cursor cursor = MyAdapter.db.rawQuery(s, null);if (!cursor.moveToNext()) {Toast.makeText(this, "找不到"+sName+"的记录", Toast.LENGTH_SHORT).show();finish();return;}dtName.setText(cursor.getString(0));int iGender = cursor.getInt(1);if (iGender > 0)rbtnMale.setChecked(true);elserbtnFemale.setChecked(true);dtTel.setText(cursor.getString(2));dtAddress.setText(cursor.getString(3));dtEmail.setText(cursor.getString(4));btnEdit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String sGender = "true";if (rbtnFemale.isChecked())sGender = "false";String name = dtName.getText().toString();String sTel = dtTel.getText().toString();String sAddress = dtAddress.getText().toString();String sEmail = dtEmail.getText().toString();String s = "update contacts set name='" + name+"', gender="+sGender+",tel='" + sTel+"',address='"+sAddress+"',email='"+sEmail+"' where name='"+ sName + "';";MyAdapter.db.execSQL(s);finish();}});}private void initView(){dtName = findViewById(R.id.dtEditName);dtTel = findViewById(R.id.dtEditTel);dtAddress = findViewById(R.id.dtEditAddress);dtEmail = findViewById(R.id.dtEditEmail);rbtnMale = findViewById(R.id.rEditBtnMale);rbtnFemale = findViewById(R.id.rEditBtnFemale);btnEdit = findViewById(R.id.btnEdit);btnCancel = findViewById(R.id.btnEditCancel);}
    }

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

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

相关文章

胶原蛋白三肽能否深入皮肤?一场关于美丽的科学之旅

在追求美丽的道路上,我们总是对各种护肤成分充满好奇。今天,就让我们一起探讨一个热门话题——胶原蛋白三肽,它究竟能否深入我们的皮肤,为我们带来期待中的美丽改变呢? 首先,我们需要了解胶原蛋白肽是什么…

开发心电疾病分类的深度学习模型并部署运行于ARM虚拟硬件平台(AVH)

目录 一、ARM虚拟硬件平台介绍 二、心电疾病分类模型介绍 三、部署流程 3.1 基于百度云平台订阅虚拟硬件镜像 3.2 安装编译相关组件 3.1 数据加载 3.2 模型转换 方式一: tensorflow模型转换为onnx模型,onnx模型转换为TVM模型 方式二&#xff1…

注册表Windows兼容性设置(AppCompatFlags)

属性 - 兼容性 EXE文件属性中有兼容性标签,当有些老版本软件不能正常运行时经常会调整这里的设置。 image.png 上面的所有选项都写在注册表中,其中“更改所有用户的设置”保存在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppC…

html5各行各业官网模板源码下载(2)

文章目录 1.来源2.源码模板2.1 HTML5好看的旅行网站模板源码2.2 HTML5自适应医院叫号大屏模板源码2.3 HTML5好看的高科技登录页面模板源码2.4 HTML5宠物美容服务公司网站模板源码2.5 HTML5创意品牌广告设计公司网站模板源码2.6 HTML5实现室内设计模板源码2.7 HTML5黄金首饰网站…

Activiti7_使用

Activiti7_使用 一、Activiti7二、绘制工作流三、通过代码部署流程,再对流程进行实例化,完整运行一遍流程即可四、在springbooot中使用 一、Activiti7 为了实现后端的咨询流转功能,学习Activiti7,记录下使用的过程及遇到的问题 二…

openwrt 官方版 安装配置 AdGuard Home + smartdns 告别广告烦扰 教程 软路由实测 系列五

1 安装 adguard home opkg update opkg install adguardhome #启动 /etc/init.d/adguardhome start /etc/init.d/adguardhome enable #查看 rootOpenWrt:~# ps| grep AdGuardHome5101 root 1233m S /usr/bin/AdGuardHome -c /etc/adguardhome.yaml -w /var/adguardhom…

云界洞见——基于移动云云数据库MySQL应用实践

目录 简介1 新手入门1.1 创建MySQL实例1.2 公网连接MySQL实例 2 操作指南2.1 创建数据库2.2 数据备份设置2.3 日志管理2.4 监控告警2.5 代码审计 3 应用场景4 总结 如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础…

渗透测试的测试流程与注意事项

软件测试流程 渗透测试是一种重要的软件测试技术,通过对系统进行模拟攻击和漏洞评估,帮助组织发现和修复潜在的安全风险,提高系统的安全性和稳定性。在进行渗透测试时,需要注意合法授权、技术能力、安全意识和报告质量等方面的问…

科学提效|AI融入零售业,未来零售的创新之旅

零售业正经历着由人工智能(AI)引领的转型浪潮。AI在零售和消费品(CPG)行业的应用前景广阔,它正以多种创新方式重塑行业的运作模式。且随着技术的不断进步,AI在零售业的应用将变得更加广泛和深入。AI不仅能够…

即刻起飞——基于Amazon Bedrock快速构建生成式AI应用

即刻起飞 —— 基于 Amazon Bedrock 快速构建生成式 AI 应用 1. 前言 在百模大战中,AI行业的发展正在经历前所未有的变革。这场竞争不仅推动了AI技术的快速发展,也揭示了AI行业的新趋势。这些趋势不仅影响着我们如何看待和使用AI,也预示着AI…

免费且非常火的日程管理软件:飞项

一、简介 1、在日常繁忙的工签中,是否事情一大堆却记不住?系统自带的日历用着却是不方便,不顺手,提醒不及时?待办、打卡、记事乱七八糟的混在一起,关键时候找不到?市面上的日程管理软件那么多&a…

springboot+jwt+shiro+vue+elementUI+axios+redis+mysql完成一个前后端分离的博客项目

目录 简易博客项目(springbootjwtshirovueelementUIaxiosredismysql)第一章 整合新建springboot,整合mybatisplus第一步 创建项目(第八步骤就行)数据库:1、 修改pom.xml2、修改配置文件3、创建数据库vueblog然后执行下面命令生成表 第二步 配置分页MybatisPlusConfig生成代码(d…

Spring Boot 系统学习第三天:Spring依赖注入原理分析

1.概述 Spring中关于依赖注入的代码实现非常丰富,涉及大量类和组件之间的协作与交互。从原理上讲,任何一个框架都存在一条核心执行流程,只要抓住这条主流程,就能把握框架的整体代码结构,Spring也不例外。无论采用何种依…

YoloV8改进策略:注意力改进|HCANet全局与局部的注意力模块CAFM|二次创新|即插即用

文章目录 摘要用在自己的论文中,该如何描述原论文中的描述在自己论文中描述代码与详解官方结果改进方法测试结果总结摘要 在CAFM模型的基础上进行二次创新,我成功地开发了一个性能显著提升的改进版模型。这一创新不仅优化了特征提取和融合的方式,还极大地提高了模型的泛化能…

【C语言】自定义类型:联合与枚举的简明概述

🔥引言 关于自定义类型除了我们常用的结构体,还有联合与枚举也是属于自定义类型。本篇将简单介绍联合与枚举基本概念和使用方法 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏&…

如何在.NET中集成SignalR

SignalR 简介 SignalR是一个开放源代码库,可用于简化向应用添加实时Web功能,实时Web功能使服务器端代码能够将内容推送到客户端。 SignalR开源库:https://github.com/SignalR/SignalR SignalR 应用场景 需要高频次从服务器获取信息的应用&am…

QML_Switch控件_3选2的控制算法

QML_Switch控件_3选2的控制算法 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5Window {visible: truewidth: 400height: 400title: qsTr("Hello World")property int num: 0Row {spacing: 10Switch {id: switch1onCheckedChanged: {…

找出缺失的观测数据

代码实现: 在缺失的 n 个观测数据中,有 y 个观测数据是 x1,其余观测数据都是x int* missingRolls(int *rolls, int rollsSize, int mean, int n, int *returnSize) {int m rollsSize;int sum mean * (n m);int missingSum sum;for (int i…

Java进阶:详解与实战Java Stream API

Java进阶:详解与实战Java Stream API 🌟 Java进阶:详解与实战Java Stream API 🌟摘要引言一、Java Stream API介绍📚1. 什么是Java Stream API?2. Java Stream API支持的功能3. 使用Java Stream API的优势…

Python-3.12.0文档解读-内置函数id()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 概述 参数 返回值 特性 实现细节(CPython) 安全…