안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요..
상큼한 칵테일로 과음해서 아침부터 멍때리는..-_-;;
여튼..지금 프로젝트 때문에 XML을 사용하지 못하고 레이아웃을 구성하고 있습니다.
모든 뷰나 그런것은 다 되는데 리스트뷰에서 딱 문제가 발생하네요.
이전까지는 겟뷰에서 인플레이터로 XML로 작성된 로우를 가져와서 뷰로 만들어서 쓰는 방법만 썻는데요.
인플레이터는 XML의 메모리 주소를 가져오는 방법이라 제가 임의로 View를 만들어서 convertView = TemtVIew 형식으로 했는데...
역시나 안되더군요...
잘 생각해보면 겟뷰에서 뷰를 생성해서 뿌려주는 형태인데... 그럼 해당 겟뷰에서 자바로 로우 레이아웃을 작성해야 하는걸까요..??
구글링을 해봐도 없고...답답한 마음에 이렇게 질문 올립니다.
어떠한 방법이 있을까요???? 리스트뷰 로우에는 이미지뷰+텍스트뷰 3개 + 버튼 1개가 들어가야 하더군요-_-;;
모두들.....일주일의 반환점이니 힘내세요!
네 말씀하신것처럼 겟뷰에서 inflate대신 자바로 로우 레이아웃 작성하시면 됩니다.
if (convertView == null)
{
//로우 레이아웃 생성
//Relative나 Linear에 이미지뷰+텍스트뷰3개+버튼1개 들어가겟네요
}
ImageView img = (ImageView)convertView.findViewById(id);
TextView text1 = (TextView)convertView.findViewById(id);
TextView text2 = (TextView)convertView.findViewById(id);
TextView text3 = (TextView)convertView.findViewById(id);
Button button = (Button)convertView.findViewById(id);
img.setImageBitmap(...);
text1.setText(...);
text2.setText(...);
text3.setText(...);
return convertView;
ViewHolder를 사용하는방법도 있지만 일단.. 이런식으로 하면 될것같네요