【发布时间】:2014-11-13 16:11:12
【问题描述】:
我对 android 开发有点陌生,我现在完全被卡住了! 所以我希望你能帮助我!
所以 - 我正在尝试从联系人选择器中获取联系人的电话号码和电子邮件地址。 但是当我显示输出时,它说它是0和null。 我究竟做错了什么? 这是代码!
if (view == btnPhonebook2) {
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
// String id = null;
// FIRST TRY
Uri contactData = data.getData(); Cursor c = managedQuery(contactData, null, null, null, null);
if(c.moveToFirst()) {
String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
int number = c.getInt(c.getColumnIndexOrThrow(People.PRIMARY_PHONE_ID));
String email = c.getString(c.getColumnIndexOrThrow(People.PRIMARY_EMAIL_ID));
//+" : c.getInt(c.getColumnIndexOrThrow(People.NUMBER));
Toast.makeText(getApplicationContext(),"you selected : "+name+"\n With the telephone number :"+number+"\n And the email :"+email,Toast.LENGTH_LONG).show();
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "60158096"));
startActivity(intent);
break;
case DialogInterface.BUTTON_NEGATIVE:
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"emailExample@gmail.com"});
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "message");
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choose an Email client :"));
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("How will you contact: "+name).setPositiveButton("Call", dialogClickListener)
.setNegativeButton("Email", dialogClickListener).show();
当我显示字符串名称时 - 结果很好!?
【问题讨论】:
-
分享更多的代码,比如getData();
-
似乎是从intent中检索数据的功能“检索此intent正在操作的数据。此URI指定数据的名称;通常它使用内容:方案,指定数据在内容提供者。其他方案可能由特定活动处理,例如 http: 由 Web 浏览器处理。"
-
但是我可以分享更多,虽然我很确定,我的错误在发布的部分。
-
我不认为这是原因,但我看不出这个条件块在哪里结束,
if(c.moveToFirst()) { -
哦是的 - 它在一堆注释掉的代码之后结束,我在这下面 - 所以它就在那里。你不用担心;-)
标签: java android contacts android-contacts