[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,一经查实,立即删除!

相关文章

【OceanBase诊断调优】—— 临时文件排查手册

本文介绍临时文件常见的问题及排查方法。 临时文件在不同的 OceanBase 数据库版本上存在不同的使用限制,具体如下: 单个 observer 节点同时写入的最大文件数 OceanBase 数据库 V2.x 及之前版本,默认最大 4000 个,可以通过 _tempo…

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

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

Cross-Episodic Curriculum for Transformer Agents

我们采用以下六个标准来提供一个全面的框架,用于对机器学习研究,特别是在序列决策和具身智能体背景下的研究进行分类和理解: 学习范式:这个标准区分了算法获取知识的方式。 强化学习 (RL) 是一种试错法,智能体通过与环…

开发心电疾病分类的深度学习模型并部署运行于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黄金首饰网站…

踏青而行、奔赴山海 | 2024中创算力户外徒步团建

春意藏,夏初长。风暧人间草木香,为了丰富中创员工的业余生活,增加全体员工亲近大自然的机会。回归自然、愉悦身心,5月15日,中创算力组织开展了户外徒步团建。 一群志同道合的人,一起奔跑在理想的路上。彼此…

前端JS怎么更换颜色:探索JavaScript中的色彩变换魔法

前端JS怎么更换颜色:探索JavaScript中的色彩变换魔法 在前端开发中,JavaScript(JS)扮演着至关重要的角色,其中一项常见的任务便是动态地更改网页元素的颜色。这个过程看似简单,实则蕴含着丰富的技巧和深度…

metersphere相关笔记

1. 修改密码: password字段为密码得到md5值,假设更新为123456,则password为e10adc3949ba59abbe56e057f20f883e docker exec -it mysql bash #进入mysql容器 mysql -uroot -pPassword123mysql use metersphere #切换到meterspheres数据库…

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…

高频交易的回测算法

https://www.reddit.com/r/highfreqtrading/comments/1corjiw/opensourcing_highfrequency_trading_and/ 这个是关于高频交易的数据读取和回测文档,这个项目中数据的收集, https://hftbacktest.readthedocs.io/en/latest/tutorials/Data%20Preparation…

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

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

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

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

数据结构中的KMP算法及其改进算法

数据结构中的KMP算法及其改进算法 在计算机科学中,字符串匹配是一个基本且重要的问题。经典的暴力匹配算法虽然简单,但在最坏情况下的时间复杂度为O(mn),其中m是模式串的长度,n是文本串的长度。为了提高匹配效率,Knut…

最全的Redis常用命令

Redis是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets&#xff09…