免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持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通讯录的开发原理及相关操作。


相关知识:
app封包
App封包是指将一个应用程序打包成一个单独的文件,以便于分发和安装。在移动应用开发中,封包是非常重要的一步,因为它将应用程序的所有文件打包成一个单独的文件,方便了开发者的管理和用户的安装。本文将介绍App封包的原理和详细步骤。一、App封包的原理在iOS和
2023-04-06
一键生成android
一键生成android是一种快速生成android应用程序的工具。它可以帮助开发人员快速构建原型应用程序,节省时间和精力。本文将介绍一键生成android的原理和详细操作步骤。一、原理介绍一键生成android的原理是利用模板技术,通过预定义的模板文件来生
2023-04-06
网页app打包
网页app打包是将一个网页应用程序(Web App)包装成一个本地应用程序(Native App),以便在移动设备上运行。打包后的应用程序可以在应用商店中发布,用户可以像使用其他本地应用程序一样使用它。网页app打包的原理是通过将网页应用程序封装在一个本地
2023-04-06
web打包安卓
Web打包安卓,也称为Hybrid App,是一种将Web技术与原生应用程序结合的开发方式,通过将Web应用程序打包成安装包,可以在移动设备上运行。本文将介绍Web打包安卓的原理和详细介绍。一、Web打包安卓的原理Web打包安卓的原理是将Web应用程序打包
2023-04-06
PC链接转APP
随着移动互联网的发展,越来越多的网站和应用需要提供APP版本,以便更好地满足移动用户的需求。但是,对于一些没有APP版本的网站或应用,用户需要在PC端使用时,往往需要通过链接转换的方式在移动设备上进行访问。下面将介绍链接转换的原理和详细步骤。链接转换原理链
2023-04-06
ios描述软件是什么
iOS描述文件是一种XML格式的文件,用于描述iOS应用程序的配置信息和证书信息。它包含了应用程序的各种设置和配置,例如应用程序的Bundle ID、开发者证书、设备UDID、应用程序的起始页面等。iOS描述文件主要用于开发者在开发和测试应用程序时,将应用
2023-04-06
php转apk
将PHP应用程序转化为APK文件,可以让我们的PHP应用程序更加方便地在Android设备上运行,同时也可以提高应用的安全性。下面我们来详细介绍一下PHP转APK的原理和方式。一、原理PHP转APK的原理是将PHP应用程序打包成一个Android应用程序,
2023-04-06
苹果手机语音打包软件
苹果手机语音打包软件是一种可以将多个语音文件打包成一个文件的工具,通常用于在语音应用程序中进行批量上传和下载。以下是该软件的详细介绍和原理。一、软件介绍苹果手机语音打包软件是一款专门为苹果手机用户设计的语音文件打包工具,主要用于将多个语音文件打包成一个文件
2023-04-06
ruby可以开发android
Ruby是一种高级编程语言,因其简单易学、易于使用和灵活性而备受欢迎,但它通常被用于服务器端开发。然而,Ruby也可以用于移动应用程序开发,包括Android应用程序开发。在本文中,我们将详细介绍如何使用Ruby开发Android应用程序。首先,需要了解的
2023-04-06
ipa前端工具
IPA前端工具是一种用于iOS应用程序开发的工具,其全称为“iOS App 预处理器(iOS App Preprocessor)”。它可以帮助开发者在开发iOS应用程序时,更加高效地进行开发和调试工作。在本文中,我们将对IPA前端工具的原理和详细介绍进行探
2023-04-06
ipa ios a
IPA是iOS设备上的应用程序安装文件格式。它类似于Windows上的.exe文件或Mac上的.dmg文件。但是,与这些文件格式不同,IPA文件需要通过特定的方法安装在iOS设备上,因为iOS设备使用了一种叫做“代码签名”的安全机制来保护用户数据和设备安全
2023-04-06
安卓前端开发框架
安卓前端开发框架是指一系列的工具和技术,用于开发安卓应用的用户界面。这些框架可以帮助开发人员更快速、高效地创建用户界面,同时提供一致的体验和可维护性。以下是一些常见的安卓前端开发框架:1. Android JetpackAndroid Jetpack是一个
2023-04-06