您可以按照以下步骤编写代码实现您的需求:

  1. 在 XML 布局文件中添加一个水平布局,其中包含一个 TextView 和一个 Button:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        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 static final int PICK_CONTACT_REQUEST = 1;
    
    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 intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                startActivityForResult(intent, PICK_CONTACT_REQUEST);
            }
        });
    }

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

        if (requestCode == PICK_CONTACT_REQUEST && resultCode == RESULT_OK) {
            // 获取用户选择的联系人
            Uri contactUri = data.getData();
            String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};
            Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null);
            if (cursor != null && cursor.moveToFirst()) {
                // 获取联系人姓名并显示在 TextView 上
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                textView.setText(name);
                cursor.close();
            }
        }
    }
}
  1. onActivityResult 方法中,处理从联系人界面返回的结果,获取选择的联系人姓名,并将其显示在 TextView 上。

这样,当您点击 Button 时,将跳转到电话簿的联系人界面,选择一个联系人后,该联系人的姓名将显示在 TextView 上。

Android Studio: TextView 和 Button 结合实现联系人选择功能

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

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