2017-03-11 2 views

답변

4

그들은 서로 다른 클래스에 정의되어 있습니다 - 유일한 차이점입니다.

어댑터 메서드는 다른 메서드를 호출합니다.

public T getItem(int position) { 
    return mObjects.get(position); 
} 

ArrayAdapter<T> Android Source code.

당신은 실제로 "필요"클래스에서 독립적으로 ArrayList에 저장하지 않습니다.

ArrayAdapter에는 고유 한 add() 메서드가 있으며 목록을 사용하지 않는 생성자를 호출합니다.

public ArrayAdapter(@NonNull Context context, @LayoutRes int resource) { 
    this(context, resource, 0, new ArrayList<>()); 
} 
0

가장 큰 차이점은 어댑터가 UI에 정보를 표시하는 데 더 적합하다는 것입니다. 따라서 예를 들어 ListView에 목록을 표시해야하는 경우 어댑터 만 사용할 수 있습니다.

주요 장점은 목록과 어댑터를 모두 관리 할 필요가 없으며 배열이 업데이트 될 때 UI가 업데이트된다는 것입니다. 그러나 UI를 새로 고치려면 어느 시점에서

adapter.notifyDataSetChanged(); 

으로 전화해야 할 수도 있습니다.

관련 문제