android web通讯录,Android手机开发之通讯录

Android手机开发——通讯录

实现增加、查询、修改、删除的功能,输入联系人信息,点击“添加”按钮,可以添加联系人信息到数据库;点击“查询”按钮,会发现添加的联系人信息显示在界面中;重新输入联系人电话,点击“修改”按钮,可以修改该联系人的电话,再进行查询发现联系人电话已经修改;点击“删除”按钮,会将数据库中该联系人的所有记录删除。

b4fcedaf7954

主界面的布局文件代码

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_marginTop="100dp">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="姓名:" />

android:id="@+id/et_name"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入姓名"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="电话:" />

android:id="@+id/et_tel"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入手机号码"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_marginTop="20dp">

android:id="@+id/btn_add"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="添加"

android:background="#b9b9ff"/>

android:id="@+id/btn_query"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="查询"

android:background="#dcb5ff"/>

android:id="@+id/btn_update"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="修改"

android:background="#e6caff"/>

android:id="@+id/btn_del"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="删除"

android:background="#acd6ff"/>

android:id="@+id/tv_show"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="20dp" />

MyHelper.java

public class MyHelper extends SQLiteOpenHelper {

private  static  final  int DATABASE_VERSION=2;

private  static  final  String DATABASE_NAME="mydb";

private  static  final String sql="CREATE TABLE directory("+

"_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),"

+"phone VARCHAR(20))";

public MyHelper(Context context){

super(context,DATABASE_NAME,null,DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

}

}

MyDBManager.java

public class MyDBManager {

private  MyHelper myHelper;

private SQLiteDatabase sqLiteDatabase;

public MyDBManager(Context context){

myHelper=new MyHelper(context);

sqLiteDatabase=myHelper.getReadableDatabase();

}

public  void getConnect(){

sqLiteDatabase=myHelper.getWritableDatabase();

}

public  void releaseConnect(){

if(sqLiteDatabase!=null){

sqLiteDatabase.close();

}

}

public  void insert(Person data){

ContentValues values =new ContentValues();

values.put("name",data.getName());

values.put("phone",data.getPhone());

sqLiteDatabase.insert("directory",null,values);

}

public ArrayListfindAll(){

ArrayList list =new ArrayList<>();

Person person =null;

Cursor cursor=sqLiteDatabase.query("directory",null,null,null,null,null,null);

while(cursor.moveToNext()){

Person person1=new Person();

person1.setName(cursor.getString(1));

person1.setPhone(cursor.getString(2));

list.add(person1);

}

cursor.close();

return  list;

}

public  void updateBysql(String clause,String data,String[] args){

ContentValues values=new ContentValues();

values.put("phone",data);

sqLiteDatabase.update("directory",values,clause,args);

}

public void delete(String clause,String[] args){

sqLiteDatabase.delete("directory",clause,args);

}

}

MainActivity.java

public class MainActivity extends AppCompatActivity {

private EditText et_name,et_phone;

private Button btn_add,btn_find,btn_update,btn_del;

private TextView tv_show;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_name=(EditText)findViewById(R.id.et_name);

et_phone=(EditText)findViewById(R.id.et_tel);

btn_add=(Button)findViewById(R.id.btn_add);

btn_find=(Button)findViewById(R.id.btn_query);

tv_show=(TextView)findViewById(R.id.tv_show);

btn_update=(Button)findViewById(R.id.btn_update);

btn_del=(Button)findViewById(R.id.btn_del);

btn_add.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

String name =et_name.getText().toString().trim();

String phone=et_phone.getText().toString().trim();

if(TextUtils.isEmpty(name)&&TextUtils.isEmpty(phone)){

Toast.makeText(MainActivity.this,"姓名和电话号码不能为空",Toast.LENGTH_SHORT).show();

}else {

Person person=new Person();

person.setName(name);

person.setPhone(phone);

MyDBManager myDBManager=new MyDBManager(MainActivity.this);

myDBManager.getConnect();

myDBManager.insert(person);

myDBManager.releaseConnect();

Toast.makeText(MainActivity.this,"保存成功",Toast.LENGTH_SHORT).show();

}

}

});

btn_find.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

MyDBManager myDBManager=new MyDBManager(MainActivity.this);

ArrayList list =myDBManager.findAll();

tv_show.setText("");

for (Person p:list){

tv_show.append("姓名"+p.getName()+";"+"电话"+p.getPhone()+"\n");

}

myDBManager.releaseConnect();

}

});

btn_update.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

String name =et_name.getText().toString().trim();

String phone=et_phone.getText().toString();

MyDBManager myDBManager=new MyDBManager(MainActivity.this);

myDBManager.getConnect();

myDBManager.updateBysql("name=?",phone,new String[] {name});

myDBManager.releaseConnect();

Toast.makeText(MainActivity.this,"信息已修改",Toast.LENGTH_SHORT).show();

}

});

btn_del.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

String name =et_name.getText().toString().trim();

String phone =et_phone.getText().toString().trim();

MyDBManager myDBManager= new MyDBManager(MainActivity.this);

myDBManager.getConnect();

myDBManager.delete("name=?",new String[]{name});

myDBManager.releaseConnect();

Toast.makeText(MainActivity.this,"信息已删除",Toast.LENGTH_SHORT).show();

}

});

}

}

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

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

相关文章

有关UITableView--cell复用问题

近来用Tableview做了一个九宫格。过程中碰到了两个cell复用问题。 问题一&#xff1a; 在cell中为button添加addTarget点击事件时&#xff0c;出现后面的cell会重叠它前面cell的事件。代码如下&#xff1a; C代码 static NSString *CellWithIdentifier "DiscoverHomeTab…

python客户端和服务端实验_结合服务器和客户端python

我正在尝试使用python(稍后可能用c语言)和TCP套接字制作一个本地网络聊天程序。我的目的是让服务器监听当前计算机的地址以获取传入消息&#xff0c;并将这些消息转发给客户端(我现在还不确定)。客户端将是一个简单的gui&#xff0c;可以通过本地连接向活动服务器发送消息。实际…

python常用语法和示例_C语言切换案例教程,语法,示例和规则

python常用语法和示例使用默认情况下的决策 (Decision making using switch-case-default) Many times in our daily lives, we face conditions where we are required to choose between a number of alternatives rather than just two or three. For example, which school…

android so abi适配,Android NDK学习(六): so文件兼容之abiFilters的使用

最近项目中遇到了要使用JavaCV的情况&#xff0c;涉及到了abi兼容的选择。因为如果全部都适配的话&#xff0c;包很大&#xff0c;这样兼容那些用户数极少的cpu就很不划算&#xff0c;所以我只适配了armeabi-v7a这一个。但是今天在x64-v8a的模拟器上看的时候&#xff0c;提示我…

python中doc=parased.getroot()_python中执行sed命令操作源文件时出现错误

我想在python中执行一个sed命令&#xff0c;第一种方法直接指定文件时&#xff0c;可以正确输出结果&#xff0c;但是第二种我打开文件操作的时候就有问题&#xff0c;不知道什么原因&#xff0c;求高手解答&#xff1f;(1)>>> sedcmd"sed -n \s/{//g; p\ /qye/p…

JavaScript基础之Number对象和Math对象

2019独角兽企业重金招聘Python工程师标准>>> //Math对象//属性float Math.E; //返回自然对数的底数e&#xff0c;约2.718float Math.LN2; //返回2的自然对数&#xff0c;约0.693float Math.LN10; //返回10的自然对数&#xff0c;约2.302fl…

c++ stl 获取最小值_如何在C ++ STL中找到向量的最小/最小元素?

c stl 获取最小值Given a vector and we have to minimum/smallest element using C STL program. 给定一个向量&#xff0c;我们必须使用C STL程序最小/最小元素。 寻找向量的最小元素 (Finding smallest element of a vector) To find a smallest or minimum element of a …

android studio panic,Android Studio模拟器PANIC错误

Android Studio模拟器突然停止工作.当我尝试运行虚拟设备时,我在事件日志中收到以下错误.模拟器:PANIC:找不到AVD系统路径.请定义ANDROID_SDK_ROOT仿真器:处理完成,退出代码为1所以我检查了ANDROID_SDK_ROOT环境变量设置的值,它是空的.所以我把它设置为/Users/{username}/Libra…

linux特殊权限之访问权限

特殊权限如/etc/passwd:sSuid:普通用户以管理员身份运行命令&#xff08;chmod us FILE、chmod u-s FILE&#xff09;如果FILE本身原来就有执行权限&#xff0c;SUID显示为s&#xff1b;否则显示SSgid:基本组以管理组身份运行命令&#xff08;chmod gs FILE、chmod g-s FILE&am…

vb.net变量值变化触发事件_Angular变化检测的理解

获取脏检查的时机Angular 使用NgZone获取变化的通知&#xff0c;然后进行全面的变化检测&#xff0c;进而更新Dom脏检查的过程Angular的数据流是自顶而下&#xff0c;从父组件到子组件单项流动&#xff0c;单项数据流保证了高效可预测的变化检测。尽管检查了父组件之后&#xf…

python 算术右移_Python算术序列| 竞争编码问题

python 算术右移Question: 题&#xff1a; In mathematics, when in an arithmetic sequence is a sequence of numbers such that the difference between the consecutive terms is constant then it is called arithmetic constant. 在数学中&#xff0c;当在算术序列中是…

Android8内测申请,小米 6 安卓 8.0 来了 内测开始招募

Android 8.0 已经正式发布多时&#xff0c;目前不少厂商已经启动了旗下进行的 Android 8.0 适配计划。但令人纳闷的是&#xff0c;一向对系统升级比较热心的小米却迟迟没有动静。好消息是&#xff0c;此前网友曝光的消息显示&#xff0c;MIUI 已经悄然在官方论坛中招募小米 6 的…

My linux

为什么80%的码农都做不了架构师&#xff1f;>>> 1.linux 命令方式修改机器名称 # hostname newHostName # vi /etc/sysconfig/network 修改或增加配置&#xff1a;hostnamenewHostName # vi /etc/hosts 修改对应的本地HOST映射 xx.xxx.xxx.xxx newHostName 2.Redha…

狂神说es笔记_人教版七上英语Unit5电子课本音频+课堂笔记+课后同步习题

1人教 七上英语Unit5单词七年级英语上册Unit 5单词默写1做&#xff1b;干(助动词)__________2做&#xff0c;干(助动词第三人称单数形式)__________3有__________4网球__________5球__________6乒乓球______7球棒&#xff1b;球拍__________8(英式)足球____________________9排…

Java RandomAccessFile getFilePointer()方法与示例

RandomAccessFile类getFilePointer()方法 (RandomAccessFile Class getFilePointer() method) getFilePointer() method is available in java.io package. getFilePointer()方法在java.io包中可用。 getFilePointer() method is used to get the current pointer in the Rando…

先进技术android,React Native实战(JavaScript开发iOS和Android应用)/计算机科学先进技术译丛...

导语内容提要本书作者Nader Dabit是AWS Mobile开发人员、React Native Training创始人和React Native Radio播客主持人。本书旨在帮助iOS、Android和Web开发人员学习使用React Native框架&#xff0c;构建高质量的iOS和Android应用程序。书中介绍了React Native入门基础知识&am…

开发类似vs的黑色风格_传闻:2020年《使命召唤》将是《黑色行动》重启作品

据可信度较高的消息源透露&#xff0c;2020 年的《使命召唤》将是《黑色行动》的重启作。而据之前的报道&#xff0c;《黑色行动》开发商 Treyarch 正在开发今年的《使命召唤》&#xff0c; Sledgehammer Games 和 Raven Software 负责辅助工作。该项目代号为“宙斯”&#xff…

ubuntu中 不同JDK版本之间的切换

Ubuntu中JDK 的切换前提是同时安装了多个版本&#xff0c;如jdk7和jdk8&#xff0c;若要切换&#xff0c;在终端输入&#xff1a; sudo update-alternatives --config javasudo update-alternatives --config javac

osi模型:七层模型介绍_联网| OSI模型能力问题和解答 套装1

osi模型:七层模型介绍1) There are the following statements that are given below, which of them are correct about the OSI model? The OSI model is a reference model that describes the network functionalities.The OSI model is an implemented model that describ…

华为鸿蒙系统正式登场,华为自研鸿蒙系统将于8月9日正式登场,还有全新的鸿鹄芯片...

最近华为发布了很多手机&#xff1a;荣耀20系列手机、荣耀9X系列、华为Nova 5系列&#xff0c;以及7月26日发布的华为Nova5i Pro和华为首部5G手机Mate20 X 5G版&#xff0c;这些手机将成为华为下半年的出货主力&#xff0c;市场份额能否超过50%就看这些手机的表现了。华为还将在…