기본적인 Adapter입니다.
도서검색 프로그램을 짜는 과정에서 기본적인 출력 레이아웃을 만들고 있습니다.
클래스는 main이 되는 LibraryBookList클래스 리스트뷰에 출력할 항목을 담는 LibrayItem클래스
BaseAdapter를 상속받아서 재정의를 하는 LibrayAdapter클래스로 구성됩니다.
xml파일은 기본적인 리스트뷰 librarybooklist.xml과 리스트뷰의 한줄한줄에 들어갈 자식 layout인 librarybooklist_menu.xml로 구성됩니다.
전체 코드입니다.
LibraryBookList.java
package Don.Library; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; public class LibraryBookList extends Activity { ArrayListLibrayItem.javaarItem; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.librarybooklist); arItem = new ArrayList (); LibrayItem li; //LibrayItem 클래스를 호출하여 리스트에 넣는 과정 li = new LibrayItem(R.drawable.icon, "테스트1"); arItem.add(li); li = new LibrayItem(R.drawable.icon, "테스트2"); arItem.add(li); LibrayAdapter LiAdapter = new LibrayAdapter(this, R.layout.librarybooklist_menu, arItem); ListView LiList; LiList = (ListView)findViewById(R.id.booklist); LiList.setAdapter(LiAdapter); } }
package Don.Library; //리스트 뷰에 출력할 항목들 public class LibrayItem { LibrayItem(int aIcon, String aName){ Icon = aIcon; Name = aName; } int Icon; String Name; }LibrayAdapter.java
package Don.Library; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class LibrayAdapter extends BaseAdapter{ Context maincon; LayoutInflater Inflater; ArrayListlibrarybooklist.xmlarSrc; int layout; public LibrayAdapter(Context context, int alayout, ArrayList aarSrc){ maincon = context; Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); arSrc = aarSrc; layout = alayout; } public int getCount() { // TODO Auto-generated method stub return arSrc.size(); } public Object getItem(int position) { // TODO Auto-generated method stub return arSrc.get(position).Name; } public long getItemId(int position) { // TODO Auto-generated method stub return position; } //이부분에서 각항목의 뷰를 생성합니다. 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.listimg); img.setImageResource(arSrc.get(position).Icon); //포지션 값에 따라서 arraylist에 저장되어있는 값을 출력하는 코드입니다. TextView txt = (TextView)convertView.findViewById(R.id.listtext); txt.setText(arSrc.get(position).Name); return convertView; } }
librarybooklist_menu.xml
다음번엔 SimpleAdapter를 정리해서 올리겠습니다.
'Programming > 과거포스팅' 카테고리의 다른 글
jsp mySQL 연동 (2) | 2011.12.24 |
---|---|
★ JDBC API를 이용한 프로그래밍 (Java DataBase Connectivity) (0) | 2011.12.06 |
서블릿이란?? (0) | 2011.11.20 |
jericho - android.3.1 라이브러리 사용한 테이블 파싱 (9) | 2011.11.04 |
Android - html 파싱 - jericho.jar (0) | 2011.10.24 |