Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 联系人选择器,检索姓氏,名字,电话号码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
现在,我可以检索电话号码并将editText的文本设置为该号码.但是,当我尝试获取姓氏或名字时,它不起作用.请注意我评论内容.

继承我的代码

import android.app.Activity;
import android.content.Intent;
import android.database.cursor;
import android.net.Uri;
import android.os.bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.view.View;
import android.widget.button;
import android.widget.EditText;

public class main extends Activity {

    private static final int CONTACT_PICKER_RESULT = 1001; 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.main);
        Button getContacts = (Button)findViewById(R.id.getContacts);
        getContacts.setOnClickListener(new View.onClickListener() {

            @Override
            public void onClick(View v) {
                Intent i = new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
                startActivityForResult(i,CONTACT_PICKER_RESULT);

            }
        });
    }
    protected void onActivityResult(int reqCode,int resultCode,Intent data) {
        super.onActivityResult(reqCode,resultCode,data);
        if(resultCode == RESULT_OK) {
            switch (reqCodE) {
            case CONTACT_PICKER_RESULT:
                cursor cursor = null;
                String number = "";
                String lastName ="";
                try {

                    Uri result = data.getData();

                    //get the id from the uri
                    String id = result.getLastPathSegment();  

                    //query
                    cursor = getContentResolver().query(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone._ID + " = ? ",new String[] {iD},null);

//                  cursor = getContentResolver().query(Phone.CONTENT_URI,//                          null,Phone.CONTACT_ID + "=?",new String[] { id },//                          null);

                    int numberIdx = cursor.getcolumnIndex(Phone.DATA);  

                    if(cursor.moveToFirst()) {
                        number = cursor.getString(numberIdX);
                        //lastName = cursor.getString(cursor.getcolumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_Name));
                    } else {
                        //WE Failed
                    }
                } catch (Exception E) {
                    //Failed
                } finally {
                    if (cursor!=null) {
                        cursor.close();
                    }
                    EditText numberEditText = (EditText)findViewById(R.id.number);
                    numberEditText.setText(number);
                    //EditText lastNameEditText = (EditText)findViewById(R.id.last_name);
                    //lastNameEditText.setText(lastName);

                }

            }
        }

解决方法

这就是我得到显示名称的方式……

@Override
protected void onActivityResult(int requestCode,Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCodE) {
        case CONTACT_PICKER_RESULT:
            cursor cursor = null;

            try {
                Uri result = data.getData();
                String id = result.getLastPathSegment();

                //Get Name
                cursor = getContentResolver().query(result,null);
                if (cursor.moveToFirst()) {
                    name = cursor.getString(cursor.getcolumnIndex(ContactsContract.Contacts.DISPLAY_Name));
                } catch (Exception E) { }
        }
    }
}

希望能帮助到你 :)

大佬总结

以上是大佬教程为你收集整理的android – 联系人选择器,检索姓氏,名字,电话号码全部内容,希望文章能够帮你解决android – 联系人选择器,检索姓氏,名字,电话号码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。