meysam jahedi
پنج شنبه 28 اسفند 1393, 14:14 عصر
سلام
لیست مخاطبین رو میخوام با یه لیست ویو نشون بدم ، آداپتر و دستورات رو میزارم . نمیدونم چرا فقط 6 تا رکورد از نام مخاطبینم تکرار میشه !
public class MyAdapter extends BaseAdapter {
Activity a;
String[] N;
String[] T;
public MyAdapter (Activity act,String[] name,String[]number ){
a=act;
this.N=name;
this.T=number;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return N.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int pos, View convertView, ViewGroup arg2) {
View mylist;
LayoutInflater inflater = (LayoutInflater) a.getSystemService(Context.LAYOUT_INFLATER_SERVICE );
if (convertView == null) {
mylist = new View(a);
mylist = inflater.inflate(R.layout.alluser_row2, null);
TextView textView1 = (TextView) mylist.findViewById(R.id.tvname);
TextView textView2 = (TextView) mylist.findViewById(R.id.tvphone);
textView1.setText(N[pos]);
textView2.setText(T[pos]);
} else {
mylist = convertView;
}
return mylist;
}
}
---------------------------------------------------------------------------------------------------
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;
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(CONTENT_URI, null, null, null, null);
NAME=new String[cursor.getCount()];
SHOMARE=new String[cursor.getCount()];
int i=0;
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String contact_id = cursor.getString(cursor.getColumnIndex(_ID));
String name = cursor.getString(cursor.getColumnIndex(DISPLAY_NAM E));
int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumn Index(HAS_PHONE_NUMBER)));
if (hasPhoneNumber > 0) {
Cursor phoneCursor = contentResolver.query(PhoneCONTENT_URI, null, Phone_CONTACT_ID + " = ?",
new String[] {contact_id}, null);
while (phoneCursor.moveToNext()) {
phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(N UMBER));
}
phoneCursor.close();
Cursor emailCursor = contentResolver.query(EmailCONTENT_URI, null, EmailCONTACT_ID + " = ?",
new String[] {contact_id}, null);
while (emailCursor.moveToNext()) {
email = emailCursor.getString(emailCursor.getColumnIndex(D ATA));
}
emailCursor.close();
}
NAME[i]=name;
SHOMARE[i]=phoneNumber;
i++;
}
}
MyAdapter adapt=new MyAdapter(contact.this, NAME,SHOMARE);
listView.setAdapter(adapt);
}
لیست مخاطبین رو میخوام با یه لیست ویو نشون بدم ، آداپتر و دستورات رو میزارم . نمیدونم چرا فقط 6 تا رکورد از نام مخاطبینم تکرار میشه !
public class MyAdapter extends BaseAdapter {
Activity a;
String[] N;
String[] T;
public MyAdapter (Activity act,String[] name,String[]number ){
a=act;
this.N=name;
this.T=number;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return N.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int pos, View convertView, ViewGroup arg2) {
View mylist;
LayoutInflater inflater = (LayoutInflater) a.getSystemService(Context.LAYOUT_INFLATER_SERVICE );
if (convertView == null) {
mylist = new View(a);
mylist = inflater.inflate(R.layout.alluser_row2, null);
TextView textView1 = (TextView) mylist.findViewById(R.id.tvname);
TextView textView2 = (TextView) mylist.findViewById(R.id.tvphone);
textView1.setText(N[pos]);
textView2.setText(T[pos]);
} else {
mylist = convertView;
}
return mylist;
}
}
---------------------------------------------------------------------------------------------------
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;
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(CONTENT_URI, null, null, null, null);
NAME=new String[cursor.getCount()];
SHOMARE=new String[cursor.getCount()];
int i=0;
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String contact_id = cursor.getString(cursor.getColumnIndex(_ID));
String name = cursor.getString(cursor.getColumnIndex(DISPLAY_NAM E));
int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumn Index(HAS_PHONE_NUMBER)));
if (hasPhoneNumber > 0) {
Cursor phoneCursor = contentResolver.query(PhoneCONTENT_URI, null, Phone_CONTACT_ID + " = ?",
new String[] {contact_id}, null);
while (phoneCursor.moveToNext()) {
phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(N UMBER));
}
phoneCursor.close();
Cursor emailCursor = contentResolver.query(EmailCONTENT_URI, null, EmailCONTACT_ID + " = ?",
new String[] {contact_id}, null);
while (emailCursor.moveToNext()) {
email = emailCursor.getString(emailCursor.getColumnIndex(D ATA));
}
emailCursor.close();
}
NAME[i]=name;
SHOMARE[i]=phoneNumber;
i++;
}
}
MyAdapter adapt=new MyAdapter(contact.this, NAME,SHOMARE);
listView.setAdapter(adapt);
}