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

커스텀뷰 리스트뷰에 이미지 같이 띄우기(DB연동 반복문 사용 출력)

0 추천

안녕하세요. 지금 커스텀 뷰와 DB를 연동하면서 갈피를 잡지 못해 질문드립니다.

 

지금 DB연동을 통해 커스텀 리스트뷰를 통해 DB의 값을 긁어오는데 까지는 했는데

 

하다보니 DB를 반복문을 사용해 긁어 왔는데 이미지를 리스트뷰 왼쪽에 넣을려고 하는데 어떻게 넣어야 하나요?

 

반복문을 사용하다 보니 XML에서 이미지를 하나만 넣어두면 넣어둔 이미지만 출력이 되니..

 

방법을 잘 모르겠습니다. 알려주시면 감사하겠습니다.

소스 부분적으로 올립니다.

 

/**************************DB 긁어 와서 리스트에 넣는 부분**********************************/

do {
if (mCursor != null && !(mCursor.isAfterLast())) {
DataVO tmp = new DataVO();
tmp.setName(mCursor.getString(2));
tmp.setType(mCursor.getString(1));
tmp.setImage(mCursor.getInt(6));
String phone = "";
try {
phone = mCursor.getString(5);
tmp.setTel(mCursor.getString(5));
} catch (Exception e) {
tmp.setTel("");
}
tmp.setInfo(mCursor.getString(3));
tmp.setAddr(mCursor.getString(4));
CourseList.add(new DataVO(tmp));
}
} while (mCursor.moveToNext());
mCursor.close();
 
CustomListAdapter locListAdapter = new CustomListAdapter(this,
R.layout.row, CourseList);
 
 
/* * * * * * * * * * * * * * * * * * * * 커스텀어댑터 정의 * * * * * * * * * * * * * * * * * * * * * * * * */
 
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater li = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.row, null);
}
 
/* position은 리스트가 위치한 상대값 (0부터 시작해서 증가) */
DataVO locdata = (DataVO) locArray.get(position);
 
if (locdata != null) {
TextView locname = (TextView) v.findViewById(R.id.name);
TextView locaddress = (TextView) v.findViewById(R.id.address);
ImageView thumbimg = (ImageView) v.findViewById(R.id.image);
 
if (thumbimg != null) { //
thumbimg.setBackgroundResource(locdata.getImage());
}
 
if (locname != null) { // 장소이름 표시
locname.setText(locdata.getName());
}
 
if (locaddress != null) {// 주소 받아 오기
locaddress.setText(locdata.getTel() + ","
+ locdata.getType());
}
 
}
return v;
}
 
/**********************************************************************/
당연히 XML에는 커스텀뷰로  이미지뷰 하나 있습니다.
 
방법좀 알려주세요 이미지를 어떻게 반복문을 돌리면서 넣을 수 있을까요?ㅜ
 
echo12 (180 포인트) 님이 2013년 10월 2일 질문

1개의 답변

0 추천

CustomView 에서 CourseList인자값 넘기시니까

getView함수내에서 인자값 받아오셔서

TextView locname = (TextView) v.findViewById(R.id.name);
TextView locaddress = (TextView) v.findViewById(R.id.address);
ImageView thumbimg = (ImageView) v.findViewById(R.id.image);

locname.setText(courseList.get(position).getXXXX());
locaddress.setText(courseList.get(position).getXXXX());
thumbimg .setBackgroundResource(courseList.get(position).getXXXX());

하면 되지 않을까요

bangbang (8,820 포인트) 님이 2013년 10월 2일 답변
그러면 메인에서 어떻게 정의를 해줘야하나요?

현재 반복문을 사용해서 DB값을 긁어오고 긁어온 내용을 CourseList에

추가시켰는데 그러면 단독으로 이미지만 긁어온 리스트 안에 반영하는

방법이 무엇인가요??

알려주시면 감사하겠습니다!!
"단독으로 이미지만 긁어온 리스트 안에 반영" 이게 무슨 뜻인지 잘 모르겠네요 db경로에있는 이미지를 뿌리고 싶으시다는 말씀인건지
db에 경로를 지정해 놓긴했는데 그 부분을 어떻게 접근해야 하는지 잘모르 겠습니다. 그래서 생각한 부분이 디비 긁어와서 리스트에 넣는 부분에서 tmp.setImage(mCursor.getInt(6))<-- 이부분을 주석처리 하고 나머지 데이터를 반복문으로 데이터를 받아와서 리스트뷰에 자료를 넣을 겁니다. 그런데 문제가 DB에 있는 이미지 경로를 주석처리 함으로서 이미지를 제가 직접 설정해서 각각의 리스트뷰에 원하는 그림을 넣고 싶은데 그게 가능한지 알고 싶습니다.
그리고 그게 불가능 하다면 지금 DB에 이미지 경로 설정을 해놨는데 어떻게 이미지에 접근하여 불러올 수 있는지 조언좀 해주시면 감사하겠습니다. 부탁드립니다.
...