profile image

L o a d i n g . . .

반응형



안드로이드 아답터 이해하기

Understanding Android Adapter


많은 정보를 효과적으로 처리하기 위해 View에 직접 주입하지 않고, adapter라는 중간 매개체를 이용한다.

BaseAdapter 추상클래스들을 이용해 다양한 데이터를 다룰 수 있고 직접 상속받아서 구현할 수도 있다.

- ArrayAdapter : T타입의 배열 데이터를 이용한 adapter

- CursorAdapter : DateBase의 Cursor를 이용한 adapter

- SimplAdapter : XML 파일의 정적인 데이터를 이용한 adapter


Instead of injecting it directly into View to effectively process a lot of information, it uses an intermediary medium called adapter

BaseAdapter abstract classess can be used to handle a variety of data and can be directly inherited and implemented

- ArrayAdapter : adapter using T type arraydata

- CursorAdapter : adapter used Cursor of DataBase

- SimplAdapter : adapter with static data from XML file


BaseAdapter를 상속받게되면 반드시 구현해야 하는 메소드들이 있다.

- getCount() : 화면에 표시해야하는 데이터의 갯수를 반환한다.

- getItem() : 인자로 받은 위치의 데이터 반환한다.

- getItemId() : 인자로 받은 위치의 데이터 id구분자를 반환한다.

- getView() : 인자로 받은 위치의 데이터가 화면에 표시될 뷰를 반환한다.


There are methods that must be implemented if BaseAdapter is inherited.

- getCount() : returns the number of data that should be displayed on the screen

- getItem() : returns data at the location received by the factor

- getItemId() : returns the dat5a id delimiter at the location received by the factor

- getView() : returns the view in which data from the position received with the factor will be displayed on the screen.


// inner class _ Adapter class
class testAdapter extends BaseAdapter {

ArrayList<UserDTO> items = new ArrayList<UserDTO>();

@Override
public int getCount() {
return items.size();
}

@Override
public Object getItem(int position) {
return items.get(position);
}

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

    // 화면에 표시될 뷰 반환

// return view that displayed on the screen
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ListView_Inflater 인스턴스 생성 - ListView_Inflater instance generate
test_Inflater view = new test_Inflater(getApplicationContext());
        

// 화면에 표시될 데이터 셋팅

// Set the data to be displayed on the screen
UserDTO dto = items.get(position);
view.setName(dto.getName());
view.setcontent(dto.getContent());
view.setImageView(dto.getResId());

return view;
}
}


반응형
복사했습니다!