커스텀어댑터의 추상메소드를 구현하는 부분중에
getView를 구현하는 부분인데요 일단 책의 예제는 이렇습니다.
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
if (convertView == null) {
convertView = Inflater.inflate(layout, parent, false);
}
ImageView img = (ImageView)convertView.findViewById(R.id.img);
img.setImageResource(arSrc.get(position).Icon);
TextView txt = (TextView)convertView.findViewById(R.id.text);
txt.setText(arSrc.get(position).Name);
Button btn = (Button)convertView.findViewById(R.id.btn);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String str = arSrc.get(pos).Name + "를 주문합니다.";
Toast.makeText(maincon, str, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
여기서 layout은 임의로 만든 이미지와 텍스트 버튼으로 레이아웃 리소스안에 정의된 렐러티브레이아웃인데 제가 이해가 안가는 부분은
레이아웃은 하나고 그로 만들어진 뷰도 하나인데 어떻게 리스트를 채울 많은 뷰들이 나오는건가 하는부분인데요
처음에는 레이아웃이 하나라도 새 객체를 만들고 대입하면 다른 뷰가 되나 싶어 코드상에서 새 텍스트뷰객체를 만들고 거기다 findViewById로 xml상의 텍스트뷰를 가져와서 기존 레이아웃에 추가시켜봤는데 안되더군요
최초에 전개된 뷰 하나만 가지고 단순히 id만 불러와서 속성만 바꿨는데 여러객체가 나오는 부분이 잘 이해가 안갑니다.
이 구조를 설명해주실 분 있으신가요