我正在用android实现contactPicker。
我已经创建了一个图像按钮和该按钮的onClick,我启动了activityforresult,以获得编辑文本中的单个联系人电话号码。
但问题是数据总是空的。
这是我的密码
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);
}
});这是活动的结果
@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。请帮我,我试过了网上所有可用的解决方案。我在哪里犯错误?
发布于 2016-05-10 10:12:07
我解决了这个问题
在声明活动的androidManifest.xml文件中,我只是删除了一些没有回报的内容。现在它运转良好。
改为:
<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>至:
<activity
android:name="xxx.aaa.bbb"
android:label="@string/app_name">
</activity>现在我可以从意图中得到结果。任何人都可以从这得到帮助。谢谢。。
https://stackoverflow.com/questions/37120780
复制相似问题