联系选择器在对话框中 [英] Contact picker in a dialog

查看:92
本文介绍了联系选择器在对话框中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Android应用程序中有一个自定义对话框。我想在此对话框中有一个字段用于从联系人中选择一个电话号码。
此示例描述了这样的片段。但是,对于这个例子,联系人选择器是在活动内部创建的,如果没有活动(对话框的情况),我不知道如何执行此操作。

解决方案

此代码解决了问题。

  public class ContactFieldActivity extends Activity {
private static final int PICK_NUMBER = 1;

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

按钮btnContacts =(Button)findViewById(R.id.btn_contacts);

btnContacts.setOnClickListener(new OnClickListener(){

public void onClick(View arg0){
Intent intent = new Intent(Intent.ACTION_PICK,Phones.CONTENT_URI );
startActivityForResult(intent,PICK_NUMBER);
}});
}

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

switch(requestCode){
case(PICK_NUMBER):
if(resultCode == Activity.RESULT_OK){
Uri contactData = data.getData();
Cursor c = managedQuery(contactData,null,null,null,null);
if(c.moveToFirst()){
String number = c.getString(c.getColumnIndexOrThrow(Phones.NUMBER));
EditText edit =(EditText)findViewById(R.id.editNumber);
edit.setText(number);
}
}
break;
}
}

}


I have a custom dialog in my android application. I want to have in this dialog a field for choosing a phone number from contacts. This example describes such snippet. However for this example contact picker is created inside an activity and I do not know how to do this if I do not have activity (in case of dialog)

解决方案

This code solves the problem.

  public class ContactFieldActivity extends Activity {
private static final int PICK_NUMBER = 1;

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

    Button btnContacts = (Button)findViewById(R.id.btn_contacts);

    btnContacts.setOnClickListener(new OnClickListener() {  

        public void onClick(View arg0) {  
            Intent intent = new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI);
            startActivityForResult(intent, PICK_NUMBER);
        }});
}

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

    switch (requestCode) {  
         case (PICK_NUMBER):  
             if (resultCode == Activity.RESULT_OK) {  
                 Uri contactData = data.getData();  
                 Cursor c = managedQuery(contactData, null, null, null, null);  
                 if (c.moveToFirst()) {  
                     String number = c.getString(c.getColumnIndexOrThrow(Phones.NUMBER));
                     EditText edit = (EditText)findViewById(R.id.editNumber);
                     edit.setText(number);  
                 }  
             }  
             break;  
     }      
}   

}

这篇关于联系选择器在对话框中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆