要实现这个功能,可以按照以下步骤进行编写:

  1. 在 XML 布局文件中,添加一个水平的 LinearLayout,其中包含一个 TextView 和一个 Button,如下所示:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="选择联系人" />
</LinearLayout>
  1. 在 Activity 中,获取 TextView 和 Button 的引用,并设置 Button 的点击事件监听器,如下所示:
public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private Button button;

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

        textView = findViewById(R.id.textView);
        button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理按钮点击事件,跳转到联系人界面
                Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                startActivityForResult(intent, 1);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 1 && resultCode == RESULT_OK) {
            // 获取选中的联系人
            Uri uri = data.getData();
            String contactName = getContactName(uri);

            // 添加联系人姓名到 TextView 上
            String currentText = textView.getText().toString();
            if (currentText.isEmpty()) {
                textView.setText(contactName);
            } else {
                textView.setText(currentText + ", " + contactName);
            }
        }
    }

    private String getContactName(Uri uri) {
        String contactName = "";
        ContentResolver contentResolver = getContentResolver();
        Cursor cursor = contentResolver.query(uri, null, null, null, null);
        if (cursor.moveToFirst()) {
            contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        }
        cursor.close();
        return contactName;
    }
}
  1. 在 Activity 中重写 onActivityResult 方法,处理从联系人界面返回的结果。在该方法中,获取选中的联系人的姓名,并将其添加到 TextView 上。

  2. getContactName 方法用于根据联系人的 Uri 获取联系人的姓名。

这样,当点击 Button 时,会跳转到电话簿的联系人界面,选择一个联系人后,联系人的姓名会显示在 TextView 上,并且可以继续选择其他联系人进行添加。

Android Studio:在 TextView 和 Button 中添加联系人姓名

原文地址: https://www.cveoy.top/t/topic/qptj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录