2012-10-29 2 views
2

은 내가 getCount 같은 몇 가지 방법,()방법을 알고 어떻게

를 구현하지 않으면 내가 오류가 발생했습니다

public class AdapterListView extends BaseAdapter { } 

이 클래스를 가지고 다른 클래스를 확장하는 클래스에서 구현해야합니다 오류 :

타입 AdapterListView 상속 된 추상 메소드를 Adapter.getCount()

를 구현해야합니다

BaseAdapter 클래스는 ListAdapterSpinnerAdapter을 구현합니다. 이러한 인터페이스 inherites Adapter 인터페이스 방법이지만,이 인터페이스는 다음과 추상적 방법 가지고

  • getCount()
  • 의 getItem()
  • 주는 getItemId()
  • getItemViewType()
  • 의 getView를 ()
  • getViewTypeCount()
  • hasStableIds()
  • IsEmpty 함수()
  • registerDataSetObserver()
  • unregisterDataSetObserver()

은 자세한 내용 Adapter 인터페이스를 참조하십시오.

하지만 getCount(), getItem(), getItemId(), getView()를 구현합니다. 그리고 컴파일러는이 오류를주지 않습니다. 왜 이런 일이 일어나는가?

+0

게시물이 매우 혼란 스럽습니다! 내가 getCount() VS 같은 몇 가지 메서드를 구현하지 않으면 오류가 발생하지만 그냥 getCount() 구현 ... 어쨌든 당신을 위해 이클립스 수 있습니다. 추상 클래스를 확장하여 저장합니다. 빨간색으로 표시된 Classname 위로 마우스를 이동하고 "메소드 구현"을 클릭하십시오. 그렇지 않으면 http://developer.android.com/reference/android/widget/BaseAdapter.html –

+0

과 같은 특정 클래스에 대해 클래스 정의를 살펴 보는 것이 혼란스럽지 않다고 생각합니다. 구현하지 않으면 오류가 발생했다. 하지만이 방법을 구현합니다. :-) 고맙습니다! – androidevil

답변

2

이러한 메서드를 구현할 필요가없는 이유는 추상 클래스 BaseAdapter에 이미 구현되어 있기 때문입니다. 소스 코드와 함께

참조 링크 : BaseAdapter

클래스 유형 abstract이 방법의 일부를 구현하고 일부를 떠날 수는 그것을 확장하는 클래스 구현한다.

감사합니다.

+0

감사합니다. 귀하의 답변은 저에게 매우 유용했습니다. 그리고이 링크에 대해서도 감사드립니다. – androidevil

+0

즉, BaseAdapter 클래스는 getCount(), getItem(), getItemId() 및 getView() 메소드를 구현하지 않습니다. 따라서 AdapterListView 클래스에서 이러한 메서드를 구현해야합니다. – androidevil

+0

도와 드리겠습니다. 귀하의 질문에 대한 축하, undestunding 것들에 대한 진정한 관심을 보여줍니다. – Luis

0

클래스를 확장하는 경우이 클래스의 모든 메서드를 구현할 필요가 없습니다. 일부 메소드는 적어도 getCount(), getId() 등의 경우와 같이 선언되어야하며 원하는 경우 해당 메소드를 재정의 할 수도 있습니다. Eclipse에서는 클래스 이름을 가리키고 클릭 할 때 어떤 메소드를 선언해야하는지 확인할 수 있습니다.

0

이러한 메소드의 이름을 변경하지 마십시오.

getCount();

getItem();

getItemId();

getItemViewType();

getView();

getViewTypeCount();

관련 문제