import cn.teachcourse.R;
/**
* Created by postmaster@teachcourse.cn on 2016/5/5.
*/
public class PhoneNameActivity extends ActionBarActivity {
private static final String TAG = PhoneNameActivity.class.getSimpleName();
private EditText et;
public static void start(Context context) {
start(context, null);
}
public static void start(Context context, Intent extras) {
Intent intent = new Intent();
intent.setClass(context, PhoneNameActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
if (extras != null) {
intent.putExtras(extras);
}
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_name);
et = (EditText) this.findViewById(R.id.mobile);
}
public void getTelClick(View view) {
String name = et.getText().toString().trim();
number(name);
}
/**
* 通过输入获取电话号码
*/
public void number(String name) {
//使用ContentResolver查找联系人数据
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//遍历查询结果,找到所需号码
while (cursor.moveToNext()) {
//获取联系人ID
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//获取联系人的名字
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
if (name.equals(contactName)) {
//使用ContentResolver查找联系人的电话号码
Cursor phone = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
if (phone.moveToNext()) {
String phoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(this, phoneNumber+"TeachCourse——blog。。。", Toast.LENGTH_SHORT).show();
Log.d(TAG, "电话:" + phoneNumber);
break;
}
}
}
}
}
1、修改getTelClick()方法
2、修改Toast面包屑提示
3、修改获取联系人名字方法
4、位置稍微调整
你在这个代码下面加一句
//使用ContentResolver查找联系人的电话号码
Cursor phone = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
phone.moveToNext(); //指向下一行
因为一开始是指向第一行的上一行,
直接phoneNumber = phone.getString(。。)会出错。
你的联系人的信息存放在数据库中?如果时这样的话,可以用cursor,然后查询数据库where=联系人姓名的那一行数据,这样,这个联系人的所有信息就都查到了,然后显示你需要的就可以了