без расширения класса деятельности, как получить идентификаторы электронной почты от контактов и получить номер телефона от контактов?

1

Привет всем, как реализовать кодирование для получения идентификатора электронной почты из контактов и получить номер телефона от контактов, покажите мне, как преодолеть эту проблему note: у класса не распространяется действие Activity и oncreate() так же любезно помогите мне идти вперед

  • 1
    Когда вы создадите объект этого класса из действия, передайте это как параметр классу
Теги:

2 ответа

2
Лучший ответ

В вашем классе не существует метода Activity или onCreate(). Поэтому передайте параметр контекста из класса, который расширяет Activity до этого класса.

sudo code

Class A extends Activity{

new ClassB(this);
}

здесь класс B не расширяет Activity. Но напишите следующий метод для gwt-контактов и идентификатора электронной почты в классе B

public static void getContactNumbers(Context context) {
    String contactNumber = null;
    int contactNumberType = Phone.TYPE_MOBILE;
    String nameOfContact = null;
    ArrayList<ContactNumberBean> phoneContacts = new ArrayList<ContactNumberBean>();
        ContentResolver cr = context.getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
                null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String id = cur.getString(cur
                        .getColumnIndex(BaseColumns._ID));
                nameOfContact = cur
                        .getString(cur
                                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

                if (Integer
                        .parseInt(cur.getString(cur
                                .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                    Cursor phones = cr
                            .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                    null,
                                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                            + " = ?", new String[] { id },
                                    null);

                    while (phones.moveToNext()) {
                        contactNumber = phones.getString(phones
                                .getColumnIndex(Phone.NUMBER));
                        contactNumberType = phones.getInt(phones
                                .getColumnIndex(Phone.TYPE));

                        phoneContacts
                                .add(new ContactNumberBean(nameOfContact,
                                        contactNumber, contactNumberType));
                    }
                    phones.close();
                }

            }
        }// end of contact name cursor
        cur.close();

}

/**
 * 
 * This method is responsible to get native contacts and corresponding email
 * id (ApplicationConstants.emailContacts)
 * 
 * @param context
 */
public static void getContactEmails(Context context) {
    String emailIdOfContact = null;
    int emailType = Email.TYPE_WORK;
    String contactName = null;
    ArrayList<ContactEmailBean> emailContacts = new ArrayList<ContactEmailBean>();



        ContentResolver cr = context.getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
                null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String id = cur.getString(cur
                        .getColumnIndex(BaseColumns._ID));
                contactName = cur
                        .getString(cur
                                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                // Log.i(TAG,"....contact name....." +
                // contactName);

                cr.query(
                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                        null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                + " = ?", new String[] { id }, null);

                Cursor emails = cr.query(Email.CONTENT_URI, null,
                        Email.CONTACT_ID + " = " + id, null, null);
                while (emails.moveToNext()) {
                    emailIdOfContact = emails.getString(emails
                            .getColumnIndex(Email.DATA));
                    // Log.i(TAG,"...COntact Name ...."
                    // + contactName + "...contact Number..."
                    // + emailIdOfContact);
                    emailType = emails.getInt(emails
                            .getColumnIndex(Phone.TYPE));
                    emailContacts
                            .add(new ContactEmailBean(contactName,
                                    emailIdOfContact, emailType));

                }
                emails.close();

            }
        }// end of contact name cursor
        cur.close();


}

Напишите два класса bean

EmailBean

public class ContactEmailBean {
        String emailType = null;
        String nameOfContact = null;

        String emailIdOfContact = null;

        public ContactEmailBean(String nameOfContact, String emailIdOfContact,
                int emailType) {
            switch (emailType) {
            case Email.TYPE_HOME:
                this.emailType = "HOME";
                // do something with the Home number here...
                break;
            case Email.TYPE_MOBILE:
                this.emailType = "MOBILE";
                // do something with the Mobile number here...
                break;
            case Email.TYPE_WORK:
                this.emailType = "WORK";
                // do something with the Work number here...
                break;

            default:
                this.emailType = "OTHER";
                break;
            }
            this.nameOfContact = nameOfContact;
            this.emailIdOfContact = emailIdOfContact;

        }

        public String getNameOfContact() {
            return this.nameOfContact;
        }

        public String getEmailType() {
            return this.emailType;
        }

        public String getEmailIdOfContact() {
            return this.emailIdOfContact;
        }
    }

ContactNumberBean

public class ContactNumberBean {
        String phoneNumberType = null;
        String nameOfContact = null;
        String contactNumber = null;

        public ContactNumberBean(String nameOfContact, String contactNumber,
                int contactNumberType) {
            switch (contactNumberType) {
            case Phone.TYPE_HOME:
                this.phoneNumberType = "HOME";
                // do something with the Home number here...
                break;
            case Phone.TYPE_MOBILE:
                this.phoneNumberType = "MOBILE";
                // do something with the Mobile number here...
                break;
            case Phone.TYPE_WORK:
                this.phoneNumberType = "WORK";
                // do something with the Work number here...
                break;
            case Phone.TYPE_WORK_MOBILE:
                this.phoneNumberType = "WORK";
                break;

            case Phone.TYPE_FAX_HOME:
                this.phoneNumberType = "FAX";
                break;
            default:
                this.phoneNumberType = "OTHER";
                break;
            }
            this.nameOfContact = nameOfContact;
            this.contactNumber = contactNumber;

        }

        public String getNameOfContact() {
            return this.nameOfContact;
        }

        public String getPhoneNumberType() {
            return this.phoneNumberType;
        }

        public String getContactNumber() {
            return this.contactNumber;
        }

}
  • 0
    как реализовать ApplicationConstants.phoneContacts .add (новый ContactNumberBean (nameOfContact, contactNumber, contactNumberType)), пожалуйста, дайте мне решение, чтобы преодолеть эту проблему
  • 0
    Привет, Laxmanperamella, просто прокомментируй эту строку
Показать ещё 4 комментария
0

Посмотрите на этот код!

btn_existing_contacts.setOnClickListener(new OnClickListener() {
        public void onClick(View v){
            Intent intent_contacts = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
            /*contacts.setAction(android.content.Intent.ACTION_VIEW);
            contacts.setData(People.CONTENT_URI);*/
            startActivityForResult(intent_contacts, 0);
            //displayContacts();


        }
     });

после возврата с экрана контактов,

@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
String name,mailid,id;
switch(requestCode)
{
case 0:
{
    if(resultCode == RESULT_OK )
    {
        Uri contactdata  = data.getData();

        Cursor cur = managedQuery(contactdata, null, null, null, null);


        if(cur.moveToFirst())
        {
            id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor emailCur = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,
                    ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",new String[]{id}, null); 
            emailCur.moveToFirst();
            String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));


            name = cur.getString(cur.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
            //mailid = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
            //mailid = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Email._ID));
            //Toast.makeText(context_contact, "Name:"+name+"\nmailid:"+email, Toast.LENGTH_SHORT).show();
            Intent intent_add_invitees = new Intent(<ClassContext>,<ur classname>.class);
            intent_add_invitees.putExtra("invitee_name", name);
            intent_add_invitees.putExtra("invitee_mailid", email);
            setResult(RESULT_OK, intent_add_invitees);
            finish();

        }
    }

}



}
}

Send_invitations.class - это активность, в которой я использую эти контакты

Ещё вопросы

Сообщество Overcoder
Наверх
Меню