안녕하세요.
주소록 목록을 가져와 체크하여 다른기능을 추가시키려고하는데요
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.endsms);
Cursor cursor = getURI(); // 전화번호부 가져오기
int end = cursor.getCount(); // 전화번호부의 갯수 세기
String name [] = new String[end]; // 전화번호부의 이름을 저장할 배열 선언
int count = 0;
if(cursor.moveToFirst())
{
// 컬럼명으로 컬럼 인덱스 찾기
int idIndex = cursor.getColumnIndex("_id");
do
{
// 요소값 얻기
int id = cursor.getInt(idIndex);
name[count] = cursor.getString(1);
count++;
} while(cursor.moveToNext() || count > end);
}
setLayout();
mCountBt.setText("현재 체크된 숫자는 = 0 개 입니다.");
// ArrayList에 String으로 이루어진 값들을 Add 한다.
for(int i =0 ; i<=name[i].length(); i++){
mArrayList.add(""+name);
}
mCustomAdapter = new CustomAdapter(AdNote_sms.this , mArrayList);
mListView.setAdapter(mCustomAdapter);
mListView.setOnItemClickListener(mItemClickListener);
}
private Cursor getURI()
{
// 주소록 URI
Uri people = Contacts.CONTENT_URI;
// 검색할 컬럼 정하기
String[] projection = new String[] { Contacts._ID, Contacts.DISPLAY_NAME, Contacts.HAS_PHONE_NUMBER };
// 쿼리 날려서 커서 얻기
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
return managedQuery(people, projection, null, selectionArgs, sortOrder);
}
필요부분 소스입니다.
이렇게 해서 실행해본결과 리스트뷰에 [Ljava.lang.String;@43228588] 이렇게만 반복이 됩니다.
어디가 잘못된것이며, 왜 이런 현상이 나는지 알고싶습니다.
고수님들 부탁드립니다.
name이 배열이어서 그럴거에요.
mArrayList.add(""+name); <--- 이부분을요.
mArrayList.add(name[i]); 이렇게 수정하면 될거에요.