어댑터에서 커스텀 리스트뷰 아이템을 추가할 때, 커스텀 리스트뷰에 이미지뷰가 있어서 그곳에 이미지를 넣으려고 합니다.
그런데, 보통 다음과 같은 소스로 이미지를 추가하는데
adapter.addItem(ContextCompat.getDrawable(this, R.drawable.ic_face_24dp),
name1[i], name2[i]);
여기서 R.drawable을 사용하지 않고 다른 고유값 과 같은 것을 통하여 추가하는 방법이 뭐가 있을까요?
현재 하는 방법을 몰라서 저런식으로 구현을 했는데, 원하고자 하는 방식은
DB에서 이미지의 URL을 가져와서 아이템을 추가할 떄, 그 URL을 사용하여 해당 이미지를 넣어주고 싶습니다.
또한, URL을 사용하지 않고 기존에 사용된 이미지의 id값을 구하여서 사용하는 방법도 찾아 봤는데,
imgId[i] = getApplicationContext().getResources().getIdentifier(image[i],"drawable",null);
adapter.addItem(ContextCompat.getDrawable(this, imgId[i]),
name1[i], name2[i]);
이런식으로 사용했는데 imgId값에 제대로된 값이 들어가지 않더라구요.
이때 image[i]에 들어가있는 값은
Drawable iconDrawable = item.getIcon();
iamge[i] = iconDrawable.toString()
형식으로 for문을 통하여 리스트의 이미지에 대한 값을 받아왔습니다.
item.getIcon은 해당 클래스에서
return this.iconDrawable ;
를 통하여 그냥 이미지를 리턴해주는 함수입니다.
첫 번째 방법의 해답과, 두 번째 문제의 해결 방안을 알려주셨으면 합니다.