首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在编辑文本中不设置ContactPicker

在编辑文本中不设置ContactPicker
EN

Stack Overflow用户
提问于 2016-05-09 16:23:49
回答 1查看 86关注 0票数 0

我正在用android实现contactPicker。

我已经创建了一个图像按钮和该按钮的onClick,我启动了activityforresult,以获得编辑文本中的单个联系人电话号码。

但问题是数据总是空的。

这是我的密码

代码语言:javascript
复制
public static final int PICK_CONTACT = 1;

ImageButton contactsButton = (ImageButton) findViewById(R.id.contacts_button);
        contactsButton.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {

             Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
             startActivityForResult(intent,PICK_CONTACT);

        }
    });

这是活动的结果

代码语言:javascript
复制
@Override
   public void onActivityResult(int reqCode, int resultCode, Intent data) {
      super.onActivityResult(reqCode, resultCode, data);
      switch (reqCode) {

        case (PICK_CONTACT):


             Log.d(" data",  data+""); //returning null


        Log.d("resultCode", resultCode+""); //returning 0

        Log.d("reqCode", reqCode+""); //returning 1

        Log.d("Activity2.RESULT_OK", Activity2.RESULT_OK+"");//returning -1

            if (resultCode == Activity2.RESULT_OK) {



             Uri contactData = data.getData();
              Cursor c = getContentResolver().query(contactData, null, null, null, null);
              if (c.moveToFirst()) {
                String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                String hasNumber = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                String num = "";
                if (Integer.valueOf(hasNumber) == 1) {
                   Cursor numbers = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
                   while (numbers.moveToNext()) {

                       num = numbers.getString(numbers.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                      Toast.makeText(xxx.this, "Number="+num, Toast.LENGTH_LONG).show();

                    ed= (EditText)findViewById(R.id.txtoooo);
                    ed.setText(num);



                   }
                }
             }

              break;

           }
      }
   }

我所要做的就是选择一个联系人并将其电话号码加载到EditText。请帮我,我试过了网上所有可用的解决方案。我在哪里犯错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-10 10:12:07

我解决了这个问题

在声明活动的androidManifest.xml文件中,我只是删除了一些没有回报的内容。现在它运转良好。

改为:

代码语言:javascript
复制
 <activity 
        android:name="xxx.aaa.bbb" 
        android:label="@string/app_name" 
        android:launchMode="singleInstance"
        android:configChanges="orientation|keyboardHidden"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

至:

代码语言:javascript
复制
 <activity 
        android:name="xxx.aaa.bbb" 
        android:label="@string/app_name">

 </activity>

现在我可以从意图中得到结果。任何人都可以从这得到帮助。谢谢。。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37120780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档