温馨提示  2024年 6月我们已经停止开发者板块文章内容更新,谢谢来访。存档数据
知识 2023-10-08 23 次阅读

安卓通讯录开发完整代码解析,如何使用?有疑问!

安卓通讯录开发完整代码
安卓通讯录是一款常常出现在大家视野里的手机应用,它可以帮助用户管理联系人信息。下面是安卓通讯录开发完整代码的简要介绍:
1. 首先,需要创建一个联系人列表,使用ArrayList来存储联系人信息。 2. 然后,需要添加一个按钮来添加联系人,点击该按钮后弹出一个输入框,用户可以在其中输入联系人的姓名和电话号码等信息。 3. 接着,需要添加一个按钮来查看联系人列表,点击该按钮后显示联系人列表。 4. 最后,需要添加一个按钮来删除联系人,点击该按钮后弹出一个确认框,用户可以在其中确认是否要删除该联系人。
以上是安卓通讯录开发完整代码的基本步骤,具体实现能够依据需求进行调整和优化。

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

1.开发原理

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

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

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

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

2.完整代码

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

1)布局文件activity,main.xml

```

安卓:layout,width=match,parent

安卓:layout,height=match,parent>

安卓:id=@+id/listView

安卓:layout,width=match,parent

安卓:layout,height=match,parent />

安卓:id=@+id/addBtn

安卓:layout,width=wrap,content

安卓:layout,height=wrap,content

安卓:text=新增

安卓:layout,alignParentBottom=true

安卓:layout,alignParentRight=true

安卓:layout,marginRight=20dp

安卓: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;

}

}

```

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