【问题标题】:query to get email , contact name , and number in 1 line of code查询以在 1 行代码中获取电子邮件、联系人姓名和电话号码
【发布时间】:2013-04-03 18:26:53
【问题描述】:

nullim 使用光标 cursor = getContentResolver() .query(contactUri, 投影, null,null,null);获取点击联系人的数量。是否可以使用此查询获取电子邮件、号码和姓名。同时? 我们可以这样做吗?如下图?

                 String[] projection = {Phone.NUMBER};
             String[] projection1 = {Email.DATA};
             String[] projection2 = {Contacts.DISPLAY_NAME};
                 Cursor cursor = getContentResolver().
                 query(contactUri, projection, null,projection1,projection2);
             cursor.moveToFirst();
                 int column = cursor.getColumnIndex(Phone.NUMBER);
             int column1 = cursor.getColumnIndex(Email.DATA);
             int column2= cursor.getColumnIndex(Contacts.DISPLAY_NAME);
             String number = cursor.getString(column);
             String email1 = cursor.getString(column1);
             String name1 = cursor.getString(column2)

这可能吗?

现在正确吗?

   String[] projection = {Phone.NUMBER, Email.ADDRESS, Contacts.DISPLAY_NAME};
   Cursor cursor = getContentResolver().
             query(contactUri, projection, null,null,null);
         cursor.moveToFirst();
             int column = cursor.getColumnIndex(Phone.NUMBER);
         int column1 = cursor.getColumnIndex(Email.ADDRESS);
         int column2= cursor.getColumnIndex(Contacts.DISPLAY_NAME);
         String number = cursor.getString(column);
         String email1 = cursor.getString(column1);
         String name1 = cursor.getString(column2)


             editText3 = (EditText) findViewById(R.id.editText3);
             editText17 = (EditText) findViewById(R.id.editText17);
             editText3.setText(number); 
             editText17.setText(email1); 

只有电话号码被设置在文本框中 edittext3 和 edittext17 都有手机号吗?我做错了什么? 谢谢

【问题讨论】:

    标签: java android xml eclipse


    【解决方案1】:

    您可以在一个数组中放置多个值:

    String[] projection = {Phone.NUMBER, Email.DATA, Contacts.DISPLAY_NAME};
    

    大家一起:

    String[] projection = {Phone.NUMBER, Email.DATA, Contacts.DISPLAY_NAME};
    Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null);
    
    int column = cursor.getColumnIndex(Phone.NUMBER);
    int column1 = cursor.getColumnIndex(Email.DATA);
    int column2= cursor.getColumnIndex(Contacts.DISPLAY_NAME);
    if(cursor.moveToFirst()) { // Check if data exists
         String number = cursor.getString(column);
         String email1 = cursor.getString(column1);
         String name1 = cursor.getString(column2)
    }
    

    【讨论】:

    • 只有电话号码在文本框中设置edittext3和edittext17都有手机号码?我做错了什么?谢谢
    • 我正在获取姓名和号码,但代替电子邮件的号码 ID 又出现了 :(
    • 试试Email.ADDRESS 而不是Email.DATA
    • 不工作 :( 号码又来了。实际上 Email.ADDRESS 应该提供电子邮件地址,我不知道它不工作吗?
    • Uri contactUri = data.getData();
    猜你喜欢
    • 2014-02-12
    • 2015-06-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多