Android에서 어댑터의 역할은 무엇입니까?


123

Android 컨텍스트에서 어댑터가 언제 , 어디서 , 어떻게 사용 되는지 알고 싶습니다 .

안드로이드 개발자 문서의 정보가 부족해서 좀 더 자세한 분석을 받고 싶습니다.

답변:


29

Android 앱에 목록을 표시한다고 가정 해 보겠습니다. 이를 위해 ListViewAndroid 에서 제공하는 을 사용합니다 . ListViews는 실제로 데이터 자체를 포함하지 않습니다. 데이터가없는 UI 요소 일뿐입니다. ListViewAndroid 어댑터를 사용하여를 채울 수 있습니다 .

Adapter구현이 데이터를 제공하고 해당 데이터의 표시를 제어하는 ​​인터페이스입니다. ListViewListView디스플레이 를 완전히 제어하는 ​​자체 어댑터 . 따라서 어댑터는 목록에 표시되는 콘텐츠와 표시 방법을 제어합니다.

Adapter인터페이스는 데이터를 전달하는 다양한 방법을 포함한다 ListView. 를 구현하여 처음부터 고유 한 어댑터를 만들 수 있습니다 BaseAdapter.

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

어댑터를 정의 할 수 있습니다.

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • 첫 번째 매개 변수 : 컨텍스트
  • 두 번째 매개 변수 : 행 레이아웃
  • 세 번째 매개 변수 : TextView데이터가 기록되는 ID
  • 네 번째 매개 변수 : 데이터 배열

45

Android의 Well 어댑터는 기본적으로 UI 구성 요소에 데이터를 채우는 데이터 소스와 UI 구성 요소 사이의 다리 역할을합니다.

예를 들어 목록 (UI 구성 요소)은 데이터 소스 배열에서 목록 어댑터를 사용하여 채워집니다.


21
이것은 문서에서 얻을 수있는 것과 동일한 정보입니다. 하지만 자세한 설명을 원합니다
Robin

25

제 이해를 공유하고 싶습니다.

데이터 소스와 레이아웃 (대부분 ListView) 간의 인터페이스입니다.

비유

모바일 충전기 또는 USB 케이블의 예를 들어 보겠습니다. 와이어는 어댑터로 간주 할 수 있으며 데이터 소스 및 레이아웃은 각각 소켓 (플러그인 포인트) 및 USB 포트 (충전 포인트)로 이해할 수 있습니다.

모바일 충전의 경우 전원 공급 장치가 다를 수 있습니다 (예 : 보조 배터리, 소켓 또는 노트북에서 충전). Android에서 사용되는 어댑터의 경우도 마찬가지입니다. 데이터 소스는 응용 프로그램 요구 사항에 따라 변경 될 수 있습니다.

간단히 말해서 Android의 어댑터는 소스 (예 :)에서 데이터를 ArrayList<>전달하여 레이아웃 (.xml 파일)으로 전달합니다.


2
지금까지 가장 좋은 예 : D 잘 했어!
Daksh Gargas

8

Android의 어댑터는 어댑터보기 (예 :) ListView와 해당보기의 기본 데이터 사이의 다리 입니다. 어댑터 없이는 세상이 어땠을 지 상상해보십시오!

  • 세로로 스크롤되는 목록에 항목을 표시하는보기입니다. 항목은 ListAdapter이보기와 연관된 에서 가져옵니다 .

  • ListAdapter리스트의 각각의 행에 대한 레이아웃을 정의하고, 데이터를 제공하는 ListView비아 setAdapter()방법 ListView.

  • Android는 여러 표준 어댑터를 제공합니다. 가장 중요한 것은 ArrayAdapterCursorAdapter입니다.

  • ArrayAdapter 배열 또는 목록을 기반으로 데이터를 처리 할 수 ​​있습니다.

  • SimpleCursorAdapter 데이터베이스 관련 데이터를 처리 할 수 ​​있습니다.

4

어댑터는 기본적으로 콘텐츠를 전달하는 데 사용됩니다. 모든 응용 프로그램에있는 하나의 어댑터는 CursorAdapter로, 데이터베이스 쿼리에서 커서가 제공하는 콘텐츠를 전달할 수 있습니다. ListView에는 거의 항상 일종의 어댑터가 있습니다.


7
이것은 문서에서 얻을 수있는 것과 동일한 정보입니다. 하지만 자세한 설명을 원합니다
Robin

@Robin : 답변 중 하나를 "수락"하여 질문의 10 주년을 축하해보세요. 개인적으로 : 1) 귀하의 질문이 가치가 있음을 발견했습니다 (이게 제가 여기에서 마무리 한 방법입니다), 2)이 답변 중 많은 답변이 도움이되었음을 발견했습니다 (이 답변 포함). ... 그리고 3) "이 의미하는 바가 무엇인지 모르겠습니다. 더 자세한 설명 ". 아마도 그것은 내가 "이유"에 더 관심이 있기 때문일 것입니다 (위에 잘 설명되어 있습니다) .; 나는 (whichI는 "자세한 나무"가 아닌 (WarrenFaith의 응답 같은)은 "숲"에 더 관심이 있어요 CAN 문서에서 얻을).
찬성

4

어댑터는 AdapterView해당 뷰의 기본 데이터와 사이의 브리지 역할을합니다 . 어댑터는 데이터 항목에 대한 액세스를 제공하고 데이터 세트의 각 항목에 대한보기를 작성합니다.

어댑터는 View일종의 데이터 소스와 연결하는 현명한 방법 입니다. 일반적으로보기는 a ListView이고 데이터는 Cursor또는 형식으로 제공됩니다 Array. 따라서 어댑터는 CursorAdapter또는의 하위 클래스로 제공됩니다 ArrayAdapter.


2

어댑터는 데이터 모델을 관리하고 목록보기의 개별 행에 맞게 조정합니다. BaseAdapter클래스를 확장합니다 .

목록보기의 모든 줄은 원하는만큼 복잡 할 수있는 레이아웃으로 구성됩니다. 목록보기의 일반적인 줄에는 왼쪽에 이미지가 있고 가운데에 두 개의 텍스트 줄이 있습니다.


0

어댑터는 단순히 목록보기 개념을 달성하는 데 사용됩니다. 데이터 목록을 표시 할뿐만 아니라 일부 사용자 정의보기도 표시합니다. 고객이 더 많은 수의 텍스트보기 (다른보기)가있는 목록을 사용하고 싶어한다고 가정하면 Android에서 어댑터보기를 사용해야합니다.


0

이미 여러 개의 답변이 주어졌지만 다른 답변을하고 싶습니다.

어댑터는 브리지 공급자가 .

어댑터는 데이터 세트와 데이터를 표시하는 AdapterView 간의 링크입니다.


0

결국 어댑터는 보고서 작성에 매우 유용합니다. 일부 정보에 대한 보고서를 표시하려면이 도구를 사용하여보기에 데이터를 표시 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.