Adapter란,
ListView에 출력할 Data를 보관하는 장소
getCount()
: Adapter가 관리할 Data의 개수를 설정
getItem(int position)
: Adapter가 관리하는 Data의 Item의 Position을 객체 형태로 얻어옴
getItemId(int position)
: Adapter가 관리하는 Data의 Item의 Position값의 Id를 얻어옴
getView(int position, View convertView, ViewGroup parent)
: ListView에 뿌려질 Row를 설정
class ViewHolder{}
: getView()의 속도향상을 위함
한번의 findViewById로 재사용하기 위해 viewHolder를 사용
public class BaseListAdapter extends BaseAdapter {
private Context context;
private ArrayList<Object> dataList;
private LayoutInflater layoutInflater;
public BaseListAdapter(Context context, ArrayList<Object> dataList) {
this.context = context;
this.dataList = dataList;
this.layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int index) {
return dataList.get(index);
}
@Override
public long getItemId(int index) {
return index;
}
@Override
public View getView(int index, View view, ViewGroup viewGroup) {
View v = view;
ViewHolder holder = null;
if (v == null) {
v = layoutInflater.inflate(R.layout.list_item, viewGroup, false);
holder = new ViewHolder();
holder.text = (TextView) v.findViewById(R.id.text);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
Object item = getItem(index);
holder.text.setText(String.valueOf(item));
return v;
}
private class ViewHolder {
private TextView text;
}
}
'프로그래밍 > Android' 카테고리의 다른 글
Android ListView 아이템과 Button 이벤트를 각각 처리하는 방법 (0) | 2014.11.02 |
---|---|
Android Actionbar(appcompat_v7) 사용하기 (0) | 2014.11.01 |
Android PagerAdapter (0) | 2014.04.17 |
Android Fragment 생명주기 (0) | 2014.04.17 |
Android Toast 중복 제어하기 (0) | 2014.04.16 |
댓글