如何从android中点击的按钮开始创建联系人列表并写入字母?

时间:2014-08-28 04:25:54

标签: android

我在我的应用程序中使用此代码来显示整个联系人列表,现在我想解析联系人列表 - 如果我按下带有文本“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;
    }
}

2 个答案:

答案 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