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技术站