免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

android通讯录开发完整代码

Android通讯录是一款用于管理联系人信息的应用程序,主要功能包括新增、编辑、删除联系人,以及搜索联系人等。本文将介绍Android通讯录的开发原理及完整代码。

1.开发原理

Android通讯录的开发主要涉及以下几个方面:

1)联系人数据的存储:Android通讯录的联系人数据存储在系统提供的Content Provider中,开发者可以通过Content Provider提供的API进行数据的操作。

2)联系人数据的展示:开发者可以通过ListView或RecyclerView等控件展示联系人数据,并通过Adapter将数据与控件进行绑定。

3)联系人数据的操作:开发者可以通过对ListView或RecyclerView的Item进行点击事件监听,实现对联系人数据的操作,包括新增、编辑、删除等。

2.完整代码

下面是Android通讯录的完整代码,包括联系人数据的展示和操作:

1)布局文件activity_main.xml

```

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/listView"

android:layout_width="match_parent"

android:layout_height="match_parent" />

android:id="@+id/addBtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="新增"

android:layout_alignParentBottom="true"

android:layout_alignParentRight="true"

android:layout_marginRight="20dp"

android:layout_marginBottom="20dp" />

```

2)联系人数据的展示MainActivity.java

```

public class MainActivity extends AppCompatActivity {

private ListView mListView;

private Button mAddBtn;

private List mContactList;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mListView = findViewById(R.id.listView);

mAddBtn = findViewById(R.id.addBtn);

mContactList = new ArrayList<>();

//获取联系人数据

getContacts();

//设置ListView的Adapter

mListView.setAdapter(new ContactAdapter(this, mContactList));

//新增联系人

mAddBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);

startActivity(intent);

}

});

}

//获取联系人数据

private void getContacts() {

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

if (cursor != null) {

while (cursor.moveToNext()) {

Contact contact = new Contact();

String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

contact.setId(id);

contact.setName(name);

mContactList.add(contact);

}

cursor.close();

}

}

}

```

3)联系人数据的操作ContactAdapter.java

```

public class ContactAdapter extends BaseAdapter {

private Context mContext;

private List mContactList;

public ContactAdapter(Context context, List contactList) {

mContext = context;

mContactList = contactList;

}

@Override

public int getCount() {

return mContactList.size();

}

@Override

public Object getItem(int position) {

return mContactList.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

ViewHolder holder;

if (convertView == null) {

convertView = LayoutInflater.from(mContext).inflate(R.layout.item_contact, parent, false);

holder = new ViewHolder();

holder.nameTv = convertView.findViewById(R.id.nameTv);

holder.editBtn = convertView.findViewById(R.id.editBtn);

holder.deleteBtn = convertView.findViewById(R.id.deleteBtn);

convertView.setTag(holder);

} else {

holder = (ViewHolder) convertView.getTag();

}

final Contact contact = mContactList.get(position);

holder.nameTv.setText(contact.getName());

//编辑联系人

holder.editBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(Intent.ACTION_EDIT);

intent.setData(Uri.parse(ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + contact.getId()));

mContext.startActivity(intent);

}

});

//删除联系人

holder.deleteBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contact.getId());

mContext.getContentResolver().delete(uri, null, null);

mContactList.remove(position);

notifyDataSetChanged();

}

});

return convertView;

}

private static class ViewHolder {

TextView nameTv;

Button editBtn;

Button deleteBtn;

}

}

```

4)联系人数据的实体类Contact.java

```

public class Contact {

private String id;

private String name;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

```

以上就是Android通讯录的完整代码,通过这个例子,我们可以了解到Android通讯录的开发原理及相关操作。


相关知识:
web项目转安卓app
在当今的移动互联网时代,移动设备已经成为人们日常生活中不可或缺的一部分。为了更好地满足用户的需求,很多网站和应用都开始将自己的Web项目转化为安卓APP,以便更好地服务于用户。那么,Web项目如何转化为安卓APP呢?下面我们来详细介绍一下。1. Hybri
2023-04-06
离线搭建android开发环境
Android开发环境是Android应用程序开发所必须的环境,一般情况下我们需要在线下载安装Android Studio,从而搭建开发环境。但是,如果你的网络环境不太好,或者需要在没有网络的情况下进行Android开发,那么离线搭建Android开发环境
2023-04-06
网站封装app
在移动互联网时代,越来越多的网站开始尝试将自己封装成一个APP,以便更好地服务于用户。网站封装APP的原理其实非常简单,主要是通过WebView技术将网站内容嵌入到APP中,同时利用一些原生技术实现一些APP特有的功能。下面我们来详细介绍一下网站封装APP
2023-04-06
网站打包exe
网站打包exe是将网站转换成可执行文件(.exe)的过程,使得用户可以直接运行网站,而不需要在浏览器中打开。打包exe的原理是将网站的所有文件(包括HTML、CSS、JavaScript、图片等)打包成一个单独的文件,然后通过一个特定的软件将其转换为可执行
2023-04-06
中崎app
中崎app是一款基于AI技术的语音翻译软件,能够实现多语言之间的实时翻译,目前支持20多种语言,包括中文、英文、日文、韩文、法文、德文、西班牙文等。中崎app的翻译准确率高,能够满足用户的实际需求,是一款非常实用的翻译工具。中崎app的工作原理是基于机器学
2023-04-06
iOS应用免签封装
iOS应用免签封装是指将iOS应用打包成IPA文件,并通过非官方的方式安装到iOS设备上,避免了通过官方开发者账号进行签名的流程。这种方式可以方便开发者在不拥有官方开发者账号的情况下进行应用测试和分发。一、免签封装的原理iOS应用免签封装的原理是通过修改应
2023-04-06
ipa 添加网络验证
IPA是iOS应用程序文件格式,是苹果公司为iOS设备开发的应用程序包。在开发和分发过程中,为了保证应用程序的安全性和合法性,苹果公司提供了一种网络验证机制,即应用程序签名。应用程序签名是一种数字签名,用于验证应用程序包的合法性和完整性。在应用程序安装时,
2023-04-06
ipa格式文件
IPA格式文件是苹果公司为了方便iOS设备用户进行应用程序的安装和分发而开发的一种文件格式。IPA格式文件是iOS应用程序的一种打包格式,类似于Android应用程序的APK格式。IPA格式文件中包含了iOS应用程序的所有必要文件和资源,包括应用程序的二进
2023-04-06
apk封包
APK封包是指将Android应用程序打包成一个APK文件,以便于安装和分发。APK文件是一种压缩文件格式,它包含了应用程序的所有资源和代码,包括Java代码、XML文件、图像、音频、视频等等。在本文中,我们将介绍APK封包的原理和详细过程。一、APK封包
2023-04-06
韩剧tv软件apk
韩剧tv是一款以韩国电视剧为主题的视频播放软件,其APK版本是为安卓系统而设计,旨在为喜欢韩国电视剧的观众提供方便快捷的观看体验。下面我们来详细介绍一下韩剧tv软件APK的原理和功能。一、原理韩剧tv软件APK的原理是通过网络连接,将韩国电视剧的视频资源进
2023-04-06
apk查看器
APK查看器是一种用于查看和分析Android应用程序包(APK)的工具。它可以帮助开发人员、测试人员和安全研究人员分析APK文件,了解应用程序的结构、功能和漏洞。本文将介绍APK查看器的原理和详细使用方法。一、APK文件结构在了解APK查看器之前,我们需
2023-04-06
android 和 vue 混合开发
Android和Vue混合开发是一种将Android和Vue框架结合使用的开发方式。这种开发方式充分利用了Vue框架的优势,能够提高开发效率和代码质量。本文将详细介绍Android和Vue混合开发的原理和相关技术。一、Android和Vue混合开发的原理A
2023-04-06