Как показать контакты во всплывающем окне?

#android #popup #contacts

#Android #всплывающее окно #Контакты

Вопрос:

Я знал, что у них много ссылок на список контактов, но мне нужно было получить контакты во всплывающем меню.

Когда пользователь нажимает на кнопку, всплывающее окно должно показывать список контактов, он должен иметь возможность выбрать имя нескольких друзей и сохранить их контактный номер.

Я пошел с приведенным ниже кодом и получаю только информацию, которую я сохранил во всплывающем окне, и попробовал, что мне нужно именно так, как в нашем представлении списка мобильных контактов.

 import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;

import android.widget.TextView;

public class MainActivity extends Activity {
public TextView outputText;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
outputText = (TextView) findViewById(R.id.textView1);
fetchContacts();

}


public void fetchContacts() {

String phoneNumber = null;
String email = null;

Uri CONTENT_URI = ContactsContract.Contacts.CONTENT_URI;
String _ID = ContactsContract.Contacts._ID;
String DISPLAY_NAME = ContactsContract.Contacts.DISPLAY_NAME;
String HAS_PHONE_NUMBER = ContactsContract.Contacts.HAS_PHONE_NUMBER;

Uri PhoneCONTENT_URI = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String Phone_CONTACT_ID = ContactsContract.CommonDataKinds.Phone.CONTACT_ID;
String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER;

Uri EmailCONTENT_URI =  ContactsContract.CommonDataKinds.Email.CONTENT_URI;
String EmailCONTACT_ID = ContactsContract.CommonDataKinds.Email.CONTACT_ID;
String DATA = ContactsContract.CommonDataKinds.Email.DATA;

StringBuffer output = new StringBuffer();

ContentResolver contentResolver = getContentResolver();

Cursor cursor = contentResolver.query(CONTENT_URI, null,null, null, null);  

// Loop for every contact in the phone
if (cursor.getCount() > 0) {

while (cursor.moveToNext()) {

String contact_id = cursor.getString(cursor.getColumnIndex( _ID );
String name = cursor.getString(cursor.getColumnIndex( DISPLAY_NAME );
int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex( HAS_PHONE_NUMBER ));
if (hasPhoneNumber > 0) {
output.append("n First Name:"   name);

// Query and loop for every phone number of the contact
Cursor phoneCursor = contentResolver.query(PhoneCONTENT_URI, null, Phone_CONTACT_ID   " = ?", new String[] { contact_id }, null);

while (phoneCursor.moveToNext()) {
phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(NUMBER));
output.append("n Phone number:"   phoneNumber);
}

phoneCursor.close();

// Query and loop for every email of the contact
Cursor emailCursor = contentResolver.query(EmailCONTENT_URI,    null, EmailCONTACT_ID  " = ?", new String[] { contact_id }, null);

while (emailCursor.moveToNext()) {

email = emailCursor.getString(emailCursor.getColumnIndex(DATA));

output.append("nEmail:"   email);


}

emailCursor.close();
}

output.append("n";
}

outputText.setText(output);
}
}

}
 

Если у кого-то есть какие-либо идеи по этому поводу, пожалуйста, помогите мне, друзья.

Комментарии:

1. Я не вижу никакого кода, отображаемого в popupmenu выше. Для простого всплывающего меню требуется представление привязки

Ответ №1:

Прежде всего создайте кнопку и нажмите на эту кнопку

 final Dialog dialog = new Dialog(context);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.email_dialog);//

        ListView lv;
        lv= (ListView ) dialog.findViewById(R.id.list);//this is your list xml 
 

Используйте адаптер listview с несколькими вариантами выбора и заполните контакты в виде списка, используя приведенный выше код

Комментарии:

1. сэр, на самом деле я новичок в Android, не могли бы вы дать мне какой-нибудь соответствующий пример и можете ли вы помочь мне идти дальше

2. проверьте эту ссылку android-coding.blogspot.in/2011/09 / … и используйте свой код, чтобы получить контакты и поместить этот список в адаптер

3. хорошо, сэр, я использовал приведенный выше код, который я использовал для выбора нескольких контактов друзей, затем мне нужно сохранить его для этого, должен ли я использовать значения содержимого и сохранить его в БД или какой-нибудь простой способ, есть ха.

4. @user3737339: не называй меня сэром и всем бро, лучший способ — сохранить его в БД, чтобы вы могли использовать его где угодно в своем приложении

5. если вам нужен только один или два контакта, вы можете сохранить его в общих настройках