OnItemClickListener
을 설정 중이며 두 가지 방법의 차이점을 볼 수 없으며 둘 다 잘 작동하며 설명서의 차이점을 이해할 수 없습니다.ArrayList.get (int index) 메서드와 ArrayAdapter.getItem (int position) 메서드의 차이점은 무엇입니까?
1
A
답변
4
그들은 서로 다른 클래스에 정의되어 있습니다 - 유일한 차이점입니다.
어댑터 메서드는 다른 메서드를 호출합니다.
public T getItem(int position) {
return mObjects.get(position);
}
ArrayAdapter<T>
Android Source code.
ArrayAdapter에는 고유 한 add()
메서드가 있으며 목록을 사용하지 않는 생성자를 호출합니다.
public ArrayAdapter(@NonNull Context context, @LayoutRes int resource) {
this(context, resource, 0, new ArrayList<>());
}
0
가장 큰 차이점은 어댑터가 UI에 정보를 표시하는 데 더 적합하다는 것입니다. 따라서 예를 들어 ListView에 목록을 표시해야하는 경우 어댑터 만 사용할 수 있습니다.
주요 장점은 목록과 어댑터를 모두 관리 할 필요가 없으며 배열이 업데이트 될 때 UI가 업데이트된다는 것입니다. 그러나 UI를 새로 고치려면 어느 시점에서
adapter.notifyDataSetChanged();
으로 전화해야 할 수도 있습니다.