나는 지역 DB에서 연락처 세부 정보를 가져 오기위한 코드를 다음과연락처에서 동적으로 채워지는 Custom ListView에서 두 번째 행을 만드는 방법은 무엇입니까?
public class Rabtaye extends Activity {
ListView msgList;
ArrayList<MessageDetails> details;
AdapterView.AdapterContextMenuInfo info;
Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
msgList = (ListView) findViewById(R.id.MessageList);
details = new ArrayList<MessageDetails>();
MessageDetails Detail = new MessageDetails();
// String info[] = { Phone.DISPLAY_NAME, Phone.NUMBER, Phone._ID };
String number = null;
String name = null;
try {
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null,
null);
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equals("1")) {
// You know it has a number so now query it like this
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
number = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
name = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
System.out.println(number);
}
Detail.setName(name);
Detail.setNumber(number);
details.add(Detail);
msgList.setAdapter(new CustomAdapter(details, this));
phones.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
// Detail.setName(name);
// Detail.setNumber(number);
// details.add(Detail);
msgList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
TextView s = (TextView) arg1.findViewById(R.id.name);
String abc = s.getText().toString();
Toast.makeText(Rabtaye.this, abc, Toast.LENGTH_LONG).show();
}
});
}
}
CustomAdapter가 ListAdapter에 전달되는 사용자의 ListView에 이름과 번호를 할당했다. while 루프 내에서 Name과 Number를 추가하려고했지만 ListView에 하나의 이름과 숫자 만 채워질 때마다 시도했습니다. 나는 이것에 대해 거의 혼동하지 않는다. 친절하게 도와주세요!
anwsering 주셔서 감사 합니다만, 나는 당신이 말하는 것을 조금 혼란스럽게 생각합니다. 어떻게 완료했는지 보여 주시겠습니까? 감사. –