마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

recyclerview 잘못된 값 질문입니다.

0 추천

안녕하세요.

핸드폰에 있는 연락처를 긁어와서 이름, 번호, 주소를 긁어와서 hashmap 배열에 저장하고 있는데요.

주소는 적혀있지 않은 경우가 있어서 주소가 있는 경우에는 해당 hashmap index에만

따로 put("address".. ) 로 저장을 했습니다.

 

예를들어 hash구조가

put("name", joe) put("phone", 0100..)

put("name", kim) put("phone", 0101..)

put("name", lee) put("phone", 0102..) put("address", "경기도 안양시..")

put("name", park) put("phone", 0103..)

 

이런식으로 돼 있는데요

recyclerview에 저장을 하게되면 

joe 0101..

kim 0102..

lee 0103.. 경기도 안양시..

park 0104.. 경기도 안양시..

 

이런식으로 값이 나오네요...

로그는 제대로 찍히는데 리스트가 이상하게 나옵니다

@Override
public void onBindViewHolder(ViewHolder holder, int position) {

    String name = contactsHashMap[position].get("name");
    String phone = contactsHashMap[position].get("phone");
    String address = contactsHashMap[position].get("address");

    Log.d(TAG, position + " " + name);
    Log.d(TAG, position + " " + phone);

    holder.name.setText(name);
    holder.phone.setText(phone);
    if (address != null) {
        Log.d(TAG, position + " " + address);
        holder.address.setText(address);
    }

    Log.d(TAG, "===============================");
}

holder 인데요 어디가 잘못된걸까요?

배쟁 (760 포인트) 님이 2017년 8월 11일 질문

1개의 답변

0 추천

if (address != null) {
        Log.d(TAG, position + " " + address);
        holder.address.setText(address);
}else{

        holder.address.setText("");

}

익명사용자 님이 2017년 8월 14일 답변
...