[android] Android에서 어댑터의 역할은 무엇입니까?
Android 컨텍스트에서 어댑터가 언제 , 어디서 , 어떻게 사용 되는지 알고 싶습니다 .
안드로이드 개발자 문서의 정보가 부족해서 좀 더 자세한 분석을 받고 싶습니다.
답변
Android 앱에 목록을 표시한다고 가정 해 보겠습니다. 이를 위해 ListView
Android 에서 제공하는 을 사용합니다 .
ListView
s는 실제로 데이터 자체를 포함하지 않습니다. 데이터가없는 UI 요소 일뿐입니다. ListView
Android 어댑터를 사용하여를 채울 수 있습니다 .
Adapter
구현이 데이터를 제공하고 해당 데이터의 표시를 제어하는 인터페이스입니다.
ListView
의 ListView
디스플레이 를 완전히 제어하는 자체 어댑터 . 따라서 어댑터는 목록에 표시되는 콘텐츠와 표시 방법을 제어합니다.
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 - 네 번째 매개 변수 : 데이터 배열
답변
Android의 Well 어댑터는 기본적으로 UI 구성 요소에 데이터를 채우는 데이터 소스와 UI 구성 요소 사이의 다리 역할을합니다.
예를 들어 목록 (UI 구성 요소)은 데이터 소스 배열에서 목록 어댑터를 사용하여 채워집니다.
답변
제 이해를 공유하고 싶습니다.
데이터 소스와 레이아웃 (대부분 ListView) 간의 인터페이스입니다.
비유
모바일 충전기 또는 USB 케이블의 예를 들어 보겠습니다. 와이어는 어댑터로 간주 할 수 있으며 데이터 소스 및 레이아웃은 각각 소켓 (플러그인 포인트) 및 USB 포트 (충전 포인트)로 이해할 수 있습니다.
모바일 충전의 경우 전원 공급 장치가 다를 수 있습니다 (예 : 보조 배터리, 소켓 또는 노트북에서 충전). Android에서 사용되는 어댑터의 경우도 마찬가지입니다. 데이터 소스는 응용 프로그램 요구 사항에 따라 변경 될 수 있습니다.
간단히 말해서 Android의 어댑터는 소스 (예 :)에서 데이터를 ArrayList<>
전달하여 레이아웃 (.xml 파일)으로 전달합니다.
답변
Android의 어댑터는 어댑터보기 (예 🙂 ListView
와 해당보기의 기본 데이터 사이의 다리 입니다. 어댑터 없이는 세상이 어땠을 지 상상해보십시오!
예
-
세로로 스크롤되는 목록에 항목을 표시하는보기입니다. 항목은
ListAdapter
이보기와 연관된 에서 가져옵니다 . -
는
ListAdapter
리스트의 각각의 행에 대한 레이아웃을 정의하고, 데이터를 제공하는ListView
비아setAdapter()
방법
ListView
. -
Android는 여러 표준 어댑터를 제공합니다. 가장 중요한 것은
ArrayAdapter
및CursorAdapter
입니다. -
ArrayAdapter
배열 또는 목록을 기반으로 데이터를 처리 할 수 있습니다. SimpleCursorAdapter
데이터베이스 관련 데이터를 처리 할 수 있습니다.
답변
어댑터는 기본적으로 콘텐츠를 전달하는 데 사용됩니다. 모든 응용 프로그램에있는 하나의 어댑터는 CursorAdapter로, 데이터베이스 쿼리에서 커서가 제공하는 콘텐츠를 전달할 수 있습니다. ListView에는 거의 항상 일종의 어댑터가 있습니다.
답변
어댑터는 AdapterView
해당 뷰의 기본 데이터와 사이의 브리지 역할을합니다 . 어댑터는 데이터 항목에 대한 액세스를 제공하고 데이터 세트의 각 항목에 대한보기를 작성합니다.
어댑터는 View
일종의 데이터 소스와 연결하는 현명한 방법 입니다. 일반적으로보기는 a ListView
이고 데이터는 Cursor
또는 형식으로 제공됩니다 Array
. 따라서 어댑터는 CursorAdapter
또는의 하위 클래스로 제공됩니다 ArrayAdapter
.
답변
어댑터는 데이터 모델을 관리하고 목록보기의 개별 행에 맞게 조정합니다. BaseAdapter
클래스를 확장합니다 .
목록보기의 모든 줄은 원하는만큼 복잡 할 수있는 레이아웃으로 구성됩니다. 목록보기의 일반적인 줄에는 왼쪽에 이미지가 있고 가운데에 두 개의 텍스트 줄이 있습니다.