Android实现通讯录效果——获取手机号码和姓名

Android实现通讯录效果——获取手机号码和姓名

在Android应用中实现通讯录效果,可以通过以下步骤获取手机号码和姓名。

步骤一:添加权限

首先,在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name=\"android.permission.READ_CONTACTS\" />

这个权限允许应用读取设备上的联系人信息。

步骤二:创建布局文件

接下来,创建一个布局文件,用于显示获取到的手机号码和姓名。可以使用一个TextView来显示这些信息。

<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:orientation=\"vertical\">

    <TextView
        android:id=\"@+id/phoneTextView\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\" />

    <TextView
        android:id=\"@+id/nameTextView\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\" />

</LinearLayout>

步骤三:获取手机号码和姓名

在Activity或Fragment中,可以使用以下代码获取手机号码和姓名:

import android.database.Cursor;
import android.provider.ContactsContract;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView phoneTextView;
    private TextView nameTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        phoneTextView = findViewById(R.id.phoneTextView);
        nameTextView = findViewById(R.id.nameTextView);

        // 查询联系人信息
        Cursor cursor = getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                null,
                null,
                null
        );

        if (cursor != null && cursor.moveToFirst()) {
            // 获取手机号码和姓名列的索引
            int phoneIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
            int nameIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);

            // 遍历联系人信息
            do {
                String phoneNumber = cursor.getString(phoneIndex);
                String name = cursor.getString(nameIndex);

                // 显示手机号码和姓名
                phoneTextView.setText(\"手机号码:\" + phoneNumber);
                nameTextView.setText(\"姓名:\" + name);
            } while (cursor.moveToNext());

            cursor.close();
        }
    }
}

示例说明

以下是两个示例说明,展示如何使用上述代码获取手机号码和姓名。

示例一:在Activity中显示通讯录信息

public class MainActivity extends AppCompatActivity {

    // ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // ...

        // 查询联系人信息
        Cursor cursor = getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                null,
                null,
                null
        );

        if (cursor != null && cursor.moveToFirst()) {
            // 获取手机号码和姓名列的索引
            int phoneIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
            int nameIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);

            // 遍历联系人信息
            do {
                String phoneNumber = cursor.getString(phoneIndex);
                String name = cursor.getString(nameIndex);

                // 显示手机号码和姓名
                phoneTextView.setText(\"手机号码:\" + phoneNumber);
                nameTextView.setText(\"姓名:\" + name);
            } while (cursor.moveToNext());

            cursor.close();
        }
    }
}

示例二:在Fragment中显示通讯录信息

public class MyFragment extends Fragment {

    // ...

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_my, container, false);

        phoneTextView = view.findViewById(R.id.phoneTextView);
        nameTextView = view.findViewById(R.id.nameTextView);

        // ...

        // 查询联系人信息
        Cursor cursor = getActivity().getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                null,
                null,
                null
        );

        if (cursor != null && cursor.moveToFirst()) {
            // 获取手机号码和姓名列的索引
            int phoneIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
            int nameIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);

            // 遍历联系人信息
            do {
                String phoneNumber = cursor.getString(phoneIndex);
                String name = cursor.getString(nameIndex);

                // 显示手机号码和姓名
                phoneTextView.setText(\"手机号码:\" + phoneNumber);
                nameTextView.setText(\"姓名:\" + name);
            } while (cursor.moveToNext());

            cursor.close();
        }

        return view;
    }
}

以上是实现Android通讯录效果的完整攻略,通过添加权限、创建布局文件和获取手机号码和姓名的步骤,可以在应用中显示通讯录信息。示例说明展示了在Activity和Fragment中如何使用这些代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android实现通讯录效果——获取手机号码和姓名 - Python技术站

(0)
上一篇 2023年9月6日
下一篇 2023年9月6日

相关文章

  • RecyclerView实现流式标签单选多选功能

    RecyclerView实现流式标签单选多选功能攻略 介绍 RecyclerView是Android开发中常用的控件,用于展示大量数据列表。在实现流式标签单选多选功能时,我们可以利用RecyclerView的灵活性和可扩展性来实现。 步骤 步骤一:准备数据 首先,我们需要准备数据源,即标签列表。可以使用一个List或数组来存储标签数据。 示例代码: List…

    other 2023年9月5日
    00
  • linux awk 字符串连接操作(字符串转数字,数字转字符串)

    Linux awk 是一款常用的文本处理工具,它可以方便地对文本文件进行操作和处理。字符串连接操作常用于将多个字符串拼接成一个字符串,或将字符串与数字之间进行转换。 字符串连接操作 在 awk 中,字符串连接可以使用双引号来实现,例如: $ awk ‘BEGIN{str1="Hello, "; str2="world!&quot…

    other 2023年6月20日
    00
  • 菜鸟必备:个人电脑端口完全解析

    菜鸟必备:个人电脑端口完全解析 简介 个人电脑作为日常生活中使用最多的电子设备之一,端口作为它与外部设备进行交互的关键,对于端口的了解是每个电脑使用者必备的知识。本文将详细解析个人电脑常见端口的功能、特点及应用场景,让菜鸟用户能够掌握端口的基本知识,进一步提高自己的电脑使用能力。 USB 简介 USB(Universal Serial Bus),付费标准接口…

    other 2023年6月27日
    00
  • 浅谈java 重写equals方法的种种坑

    浅谈Java重写equals方法的种种坑 介绍 在Java中,Object类中的equals方法是用于判断两个对象是否相等的。而且在大多数情况下,我们需要重写该方法来根据业务需要自定义判断两个对象是否相等。但是,重写equals方法并不容易,有一些坑需要我们注意。 重写equals方法的步骤 为了重写equals方法,我们需要遵循以下几个步骤: 首先比较对象…

    other 2023年6月27日
    00
  • Win10 20H1快速预览版19030怎么手动下载更新?

    下面是关于“Win10 20H1快速预览版19030怎么手动下载更新”的完整攻略: 1. 确认PC版本信息 首先需要确认自己PC的版本是否支持Win10 20H1快速预览版19030更新,操作步骤如下: 打开“设置”,选择“系统”,再选择“关于” 在“关于”页面可以看到“系统类型”“处理器”等信息,确认自己的PC是否支持Win10 20H1快速预览版1903…

    other 2023年6月27日
    00
  • Win11蓝屏收集错误信息重启怎么修复? Win11蓝屏自动重启的解决办法

    Win11蓝屏收集错误信息重启是一种紧急方式,用于避免系统损坏。但是,用户可能会遇到失败收集错误信息并重启电脑的情况。下面是这种问题的解决办法: 解决Win11蓝屏收集错误信息重启失败的问题 方法一:进入“安全模式”并通过“高级选项”修复 重启你的电脑,在Win11启动界面上,按住Shift键,然后单击“重新启动”选项。这将进入“高级选项”菜单。 在“高级选…

    other 2023年6月20日
    00
  • npm安装axios命令

    以下是详细讲解“npm安装axios命令的完整攻略,过程中至少包含两条示例说明: npm安装axios命令的完整攻略 Axios一个基于Promise的HTTP客户端,用于浏览器和Node.js。它可以在浏览器中发送异步请求,也可以在Node.js中HTTP请求。本攻略将介绍如何使用npm安装axios,包括基本概念、使用方法和两个示例说明。 基本概念 在开…

    other 2023年5月10日
    00
  • jQuery EasyUI API 中文文档 – EasyLoader 加载器

    jQuery EasyUI 是一个非常流行的前端 UI 框架,EasyLoader 加载器是其中的一个重要组件。下面我将为你提供关于 EasyLoader 加载器的完整攻略。 EasyLoader 加载器 EasyLoader 是 jQuery EasyUI 框架中的一个模块加载器,能够自动加载和管理 EasyUI 组件。 EasyLoader 支持自动按需…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部