【问题标题】:How to show contacts in popup?如何在弹出窗口中显示联系人?
【发布时间】:2014-06-21 20:21:49
【问题描述】:

我知道他们对联系人列表有很多参考,但我需要的是在弹出菜单中获取联系人。

当用户点击按钮弹出应该显示联系人列表他应该能够选择多个朋友的名字和联系电话存储他们。

我使用下面的代码并仅通过我保留弹出窗口并尝试我需要的信息来获取我们的移动联系人列表视图。

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);
}
}

}

如果有人对此有任何想法,请帮助我的朋友。

【问题讨论】:

  • 我没有看到上面的任何弹出菜单相关代码。只是一个弹出式菜单需要一个锚视图

标签: android popup contacts


【解决方案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 

使用多选列表视图适配器并使用上述代码在列表视图中填充联系人

【讨论】:

  • 先生,实际上我是 android 新手,你能不能给我一些相关的样本,你能指导我继续吗
  • 查看此链接 android-coding.blogspot.in/2011/09/… 并使用您的代码获取联系人并将该列表放入适配器中
  • 好的,先生,我已经使用上面的代码了哈。
  • @user3737339: 不要叫我先生和兄弟们,最好的方法是将它实际保存在数据库中,这样你就可以在你的应用程序中的任何地方使用它
  • 如果您只需要一两个联系人,您可以将其保存在共享首选项中
猜你喜欢
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多