ListIconText.java

 



public class ListIconText extends Activity {
    /** Called when the activity is first created. */
 // 내부 클래스를 담을 ArrayList
 ArrayList<MyItem> arItem;
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  arItem = new ArrayList<MyItem>();
  // 클래스의 객체를 선언하여
  MyItem mi;
  // 객체를 생성하여 arItem에 담음
  mi = new MyItem(R.drawable.icon, "삼성 노트북");arItem.add(mi);
  mi = new MyItem(R.drawable.icon, "LG 세탁기");arItem.add(mi);
  mi = new MyItem(R.drawable.icon, "대우 마티즈");arItem.add(mi);

  // BaseAdpater를 상속받아 선언
  // 리스트 뷰에게 이 항목의 집합을 제공하는 클래스
  // 어댑터를 동작하려면 BaseAdapter로부터 상속받아
  // 기본 기능을 물려받은 후 요구하는 추상 메서드를 재정의 해야함.
  MyListAdapter MyAdapter = new MyListAdapter(this, R.layout.icontext, arItem);

  ListView MyList;
  MyList=(ListView)findViewById(R.id.list);
  MyList.setAdapter(MyAdapter);
 }
}

//리스트 뷰에 출력할 항목
class MyItem {
 MyItem(int aIcon, String aName) {
  Icon = aIcon;
  Name = aName;
 }
 int Icon;
 String Name;
}

//어댑터 클래스
class MyListAdapter extends BaseAdapter {
 Context maincon;
 LayoutInflater Inflater;
 ArrayList<MyItem> arSrc;
 int layout;

 public MyListAdapter(Context context, int alayout, ArrayList<MyItem> aarSrc) {
  maincon = context;
  Inflater = (LayoutInflater)context.getSystemService(
    Context.LAYOUT_INFLATER_SERVICE);
  arSrc = aarSrc;
  layout = alayout;
 }

 public int getCount() {
  return arSrc.size();
 }

 public String getItem(int position) {
  return arSrc.get(position).Name;
 }

 public long getItemId(int position) {
  return position;
 }

 // 항목 하나를 출력하기 위한 뷰
 // 각 항목의 뷰 생성
 // position -> 생성할 항목의 순서값
 // parent -> 생성되는 뷰의 부모
 // convertView -> 이전에 생성된 차일드 뷰
 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;
 }
}


+ Recent posts