我想从电话中获取所有联系人并仅显示在android中ListView
,而无需存储在数据库中,目的是当用户单击“同步所有联系人”按钮时,应提取所有联系人并显示在中ListView
。这是主要的活动课程代码
public class MainActivity extends AppCompatActivity {
ListView listView;
Button sync;
ArrayList<newlist> listitem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listitem = new ArrayList<newlist>();
listView = (ListView) findViewById(R.id.listViewID);
registerForContextMenu(listView);
sync= (Button) findViewById(R.id.syncID);
sync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//what method will be used here for sync contacts and display in listview
}
});
}
}
这是Contats_list类
public class Contact_list {
private String name;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Contact_list(String name, String phone) {
this.name = name;
this.phone = phone;
}
}
这是Custom_adapter类
public class Custom_adapter extends ArrayAdapter<Contact_list> {
private final LayoutInflater inflater;
private final Context context;
private ViewHolder holder;
private final ArrayList<Contact_list> persons;
//ArrayList<Contact_list> mylist;
public Custom_adapter(Context context, ArrayList<Contact_list> persons) {
super(context,0, persons);
this.context = context;
this.persons = persons;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return persons.size();
}
@Override
public Contact_list getItem(int position) {
return persons.get(position);
}
@Override
public long getItemId(int position) {
return persons.get(position).hashCode();
}
@Override
public View getView(int position, View convertView, ViewGroup p) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.custom_adapter, null);
holder = new ViewHolder();
holder. name = (TextView) convertView.findViewById(R.id.txt_name);
holder. phone = (TextView) convertView.findViewById(R.id.txt_phone);
convertView.setTag(holder);
}else{
//Get viewholder we already created
holder = (ViewHolder)convertView.getTag();
}
Contact_list person = persons.get(position);
if(person != null){
holder.name.setText(person.getName());
holder.phone.setText(person.getPhone());
}
return convertView;
}
private static class ViewHolder {
TextView name;
TextView phone;
}
}
请告诉我如何获取联系人并在列表视图中显示我是新来的,任何帮助将不胜感激。
在清单中添加权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
取两个变量
String name, phonenumber ;
你点击这里
sync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GetContactsIntoArrayList();
}
});
您可以像这样访问联系人。
public void GetContactsIntoArrayList(){
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);
while (cursor.moveToNext()) {
name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
StoreContacts.add(name + " " + ":" + " " + phonenumber);
}
cursor.close();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句