[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() {
            @Override
            public 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() {
                            @Override
                            public 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() {
            @Override
            public 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);
        else
            holder.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;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_edit);
            initView();
    
            btnCancel.setOnClickListener(new View.OnClickListener() {
                @Override
                public 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);
            else
                rbtnFemale.setChecked(true);
            dtTel.setText(cursor.getString(2));
            dtAddress.setText(cursor.getString(3));
            dtEmail.setText(cursor.getString(4));
    
            btnEdit.setOnClickListener(new View.OnClickListener() {
                @Override
                public 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);
        }
    }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[ C++ ] 类和对象( 中 ) 2

目录 前置和后置重载 运算符重载和函数重载 流插入流提取的重载 全局函数访问类私有变量 友员 const成员 取地址及const取地址操作符重载 前置和后置重载 运算符重载和函数重载 流插入流提取的重载 重载成成员函数会出现顺序不同的情况(函数重载形参顺序必须相…

渗透工具CobaltStrike工具的下载和安装

一、CobalStrike简介 Cobalt Strike(简称为CS)是一款基于java的渗透测试工具,专业的团队作战的渗透测试工具。CS使用了C/S架构,它分为客户端(Client)和服务端(Server),服务端只要一个,客户端可有多个,多人连接服务端后…

AbMole - 肿瘤发展与免疫器官的“舞蹈”:一场细胞层面的时间赛跑

在生物医学领域,肿瘤与免疫系统之间的相互作用一直是研究的热点话题。肿瘤细胞不是孤立存在的,它们与宿主的免疫系统进行着一场复杂的“舞蹈”。 最近,一项发表在《Molecular & Cellular Proteomics》杂志上的研究,为我们揭开…

<el-table>根据后端返回数据决定合并单元格的数量(521特别版)

文章目录 一、需求说明二、用到的方法三、代码(只展示了本文章重点代码) 一、需求说明 💝仅合并第一列,其余为固定列 二、用到的方法 💌合并单元格可以采用三种方法 💕1. 手写表格 简单 但没有饿了么写…

使用bash shell来测试网络连接或通信 _ 统信 _ 麒麟 _ 中科方德

原文链接:使用bash shell来测试网络连接或通信 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天我们将讨论如何在国产操作系统统信UOS、麒麟KOS以及中科方德上使用bash shell的内置特性/dev/tcp来测试网络连接或进行简单的网络通信。这种方法不…

小白入职 必要熟悉 Git / tortoiseGit 工具

1.安装Git 1.1 了解Git Git是分布式版本控制系统,没有中央服务器的每个人的电脑就是一个完整的版本库,工作时无需联网可多人协作,只需把各自的修改推送给对方,就可以互相看到对方的修改了 分布式版本控制工具管理方式&#xff…

Git Large File Storage (LFS) 的安装与使用

Git Large File Storage [LFS] 的安装与使用 1. An open source Git extension for versioning large files2. Installing on Linux using packagecloud3. Getting Started4. Error: Failed to call git rev-parse --git-dir: exit status 128References 1. An open source Git…

requests_html使用介绍

文章目录 一、requests_html 基本介绍二、requests_html 基本使用三、发送带有参数的请求四、图片抓取实战案例 一、requests_html 基本介绍 A、装库: pip install requests_html B、介绍: requests 和 requests_html 是同一个作者 二、requests_html 基本使用 A、导包: fro…

具身人工智能:人工智能机器人如何感知世界

什么是具身人工智能 虽然近年来机器人在智能城市、工厂和家庭中大量出现,但我们大部分时间都在与由传统手工算法控制的机器人互动。这些机器人的目标很狭隘,很少从周围环境中学习。相比之下,能够与物理环境互动并从中学习的人工智能 (AI) 代理(机器人、虚拟助手或其他智能系…

1-Django开端--学生管理系统

目录 项目结构 前端页面: add_data.html class_data.html index.html apps.py models.py views.py settings,py urls.py ...实现简略的身架... 项目结构 前端页面: add_data.html --添加数据. {% extends index/index.html %}{% block content %} <div class&qu…

泰拉瑞亚从零开始的开服教程

前言 本教程将讲诉使用Linux系统搭建泰拉瑞亚服务器&#xff08;因为网上已经有很完善的windows开服教程了&#xff09;&#xff0c;使用的Linux发行版是Debian11,服务端使用的程序是TShock&#xff0c;游戏版本是1.4.4.9 所需要准备的 一台服务器&#xff08;本教程使用的是…

Vmware 17安装 CentOS9

前言 1、提前下载好需要的CentOS9镜像&#xff0c;下载地址&#xff0c;这里下载的是x86_64 2、提前安装好vmware 17&#xff0c;下载地址 &#xff0c;需要登录才能下载 安装 1、创建新的虚拟机 2、在弹出的界面中选择对应的类型&#xff0c;我这里选择自定义&#xff0c;点…

导弹初识(一)

目录 导弹初识1 导弹是什么2 导弹的分类2.1 按飞行方式2.2 按发射/目标2.2.1 空空导弹2.2.1 空地导弹2.2.1 地空导弹2.2.1 地地导弹 2.3 按打击目标 3.实例3.1 防空导弹3.2 低空防空导弹武器系统 本文节选自 zh&#xff0c;还有百度百科 导弹初识 1 导弹是什么 导弹两个字拆…

民国漫画杂志《时代漫画》第15期.PDF

时代漫画15.PDF: https://url03.ctfile.com/f/1779803-1247458444-8befd8?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

吉林大学软件工程简答题整理

1.6种软件过程模型列举&#xff0c;及优缺点&#xff08;每个都从时间、质量、过程、本身特点去考虑&#xff09; 瀑布模型 优点缺点V模型 优点&#xff1a;缺点&#xff1a; 原型模型 优点&#xff1a;演化模型 建增模型 优点缺点螺旋模型 优点缺点喷泉模型 RUP、敏捷工程、…

计算电磁学:FDFD算法总结

FDFD(Finite Difference Frequency Domain)在Yee格子上使用有限差分求解频域Maxwell方程组。本文通过FDFP差分方程组的推导来阐述FDFP的原理。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。 注2&#xff1a;文章内容会不定期更新。 0、预…

是的,我换logo了!

大家好&#xff0c;我是记得诚。 当你收到推文的时候&#xff0c;会发现记得诚换logo了&#xff01; 之前是这样的。 现在是这样的。 这个新logo&#xff08;头像&#xff09;是2年前在淘宝上请人做的&#xff0c;价值37人民币&#xff0c;但一直没有换上。当时还发了一个朋友…

spring cloud alibaba sentinel 配置过程 流控 降级热点 授权

目录 1.基础理论 2.配置 3.加入依赖和配置文件 4.流控 1.基础理论 Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 丰富的应用场景 &#xff1a;Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心…

透视App投放效果,Xinstall助力精准分析,让每一分投入都物超所值!

在移动互联网时代&#xff0c;App的推广与投放成为了每一个开发者和广告主必须面对的问题。然而&#xff0c;如何精准地掌握投放效果&#xff0c;让每一分投入都物超所值&#xff0c;却是一个令人头疼的难题。今天&#xff0c;我们就来谈谈如何通过Xinstall这个专业的App全渠道…

简单的UDP网络程序:多人群聊系统

本章重点 能够实现一个简单的udp客户端/服务器; 1.创建套接字 我们把服务器封装成一个类&#xff0c;当我们定义出一个服务器对象后需要马上初始化服务器&#xff0c;而初始化服务器需要做的第一件事就是创建套接字。 ⭐参数说明&#xff1a; domain&#xff1a;创建套接字的域…