从联系人列表中选取号码和姓名

时间:2013-10-10 13:08:32

标签: android android-contacts

在我的应用程序中,我有两个EditText和一个Button。如果我按下按钮,我想在这两个编辑框中选择联系人姓名和号码。

    <EditText android:textSize="16.0dip" 
        android:gravity="left" 
        android:id="@+id/contact_numbersub" 
        android:layout_width="160.0dip" 
        android:layout_height="36.0dip" 
        android:text="Mobile" 
        android:maxLines="1" 
        android:layout_below="@+id/contact_number" 
        android:layout_alignParentRight="true">
        <requestFocus />
    </EditText>


    <EditText 
        android:id="@+id/contact_number"
        android:textSize="16.0dip" 
        android:gravity="left" 
        android:layout_width="160.0dip" 
        android:layout_height="36.0dip" 
        android:text="Unknown Caller" 
        android:maxLines="1" 
        android:layout_alignParentTop="true" 
        android:layout_alignParentRight="true" />

              <Button 
        android:gravity="center" 
        android:id="@+id/contactbutton" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/contactlist" 
        android:layout_toRightOf="@id/contact_label" 
        android:layout_alignTop="@id/contactimage" 
        android:onClick="onClickSelectContact"/>

我已经为图库中的拾取图像定义了onActivityResult方法。所以我在这里找到联系人姓名和号码很困难。图像检索成功,但我没有联系人检索的解决方案

感谢任何有帮助的人。

2 个答案:

答案 0 :(得分:1)

这不是完整的解决方案,但我希望它能成为一些有用的解决方案。

假设我的按钮点击次数如下

   btncontact.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i=new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
        startActivityForResult(i,1);//Request_code is 1
    }
});

findViewById(R.id.button5).setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i=new Intent(Intent.ACTION_PICK);
            i.setType("image/*");
        startActivityForResult(i,2);//Request_code is 2
    }
});

现在,对于onActivityResult,

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(data!=null && data.getData()!=null){
        Uri _uri=data.getData();
            Log.d("Nzm", ""+_uri);


        switch(requestCode){
                    case 1:
                           // you have _uri in your hand which have contact id. Do necessary steps for contact as you want here.
                          break;
                    case 2:// Action for your image
                           Intent i=new Intent(Intent.ACTION_VIEW);
                           i.setData(_uri);
                           startActivity(i);
                           break;
                    }
              }
       }

答案 1 :(得分:0)

你见过Accessing Contacts Data吗?请特别注意检索联系人的详细信息