我在我的应用程序中使用此代码来显示整个联系人列表,现在我想解析联系人列表 - 如果我按下带有文本“A”的按钮,它应该显示从字母“A”开始的联系人”。有没有办法为此目的更改查询?
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show();
}
}
break;
}
}
答案 0 :(得分:1)
尝试像这样修改您的查询
Cursor c = getContentResolver().query(contactData, null, null, null, ContactsContract.Contacts.DISPLAY_NAME + " LIKE " + yourText +"%";
您可以将条件包含在最后一个参数
中答案 1 :(得分:0)
试试这个: 首先从按钮
获取文本 Button b = (Button) findViewById(R.id.button);
String buttonText = b.getText().toString();
并执行以下操作
SELECT * FROM TABLE WHERE CONCERNEDCOLUMN LIKE 'a%';//here starts with 'a'
因此您需要更改查询
String query = "SELECT * FROM TABLE WHERE CONCERNEDCOLUMN LIKE '"+buttonText+"%'";
P.S:从上面看一下,不要只是复制粘贴。 查询字符串也可能有错误。然后将查询用作rawQuery。
db.rawQuery(query, null);// may be return this