2011-08-17 3 views
1

내 listview에 대한 사용자 정의 arrayAdapter를 작성하고 있지만 내 슈퍼 생성자와 같은 간단한 것이 나를 망쳐 놓는다!Android 사용자 정의 arrayadapter 생성자 문제

super(context, textViewResourceId, timesTable);

The constructor SimpleAdapter(Context, int, ArrayAdapter<ScheduleTime>) is undefined

내가 여기 실종 무엇 :

private ArrayAdapter<ScheduleTime> timeHold; 
    //make proper constructor, see use ticket types 
    public TimeTableAdapter(Context context, int textViewResourceId, 
      ArrayAdapter<ScheduleTime> timesTable) { 
     super(context, textViewResourceId, timesTable); 
     this.timeHold = timesTable; 
    } 

은 내가 super 줄에 오류가? 위의 생성자는 분명히 모든 요소를 ​​가지고 있습니다

+0

'생성자 SimpleAdapter (Context, int, ArrayAdapter )이 정의되지 않은 경우'는 ** wrong ** 요소임을 의미합니다. * 당신에게 그 요소가 있다는 것을 알려주지 만, 단순 어댑터에는 정의되어 있지 않습니다. @ JB Nizet이 말했듯이, Simple Adapter는 서로 다른'super' 인수를 가지고 있습니다. – Kgrover

답변

2

당신이 정의하고있는 생성자가 특정 매개 변수 목록을 사용하기 때문에 그것이 슈퍼 클래스에 해당 생성자가 있음을 의미하지는 않습니다. 결국 생성자에 대한 임의의 매개 변수 목록을 정의 할 수 있습니다.

호출하려고하는 슈퍼 생성자는 ArrayAdapter 클래스의 인스턴스에 가장 비슷하지만 SimpleAdapter에서 상속을 시도하고 있음을 나타내는 오류 메시지가 표시됩니다. 이거 가지고 있니? ArrayAdapter가 필요한 경우 마지막 인수는 해당 유형의 단일 객체 대신 어댑터를 백업하는 객체의 배열 또는 목록이어야합니다.

SimpleAdapter 인 경우 유일한 생성자는 here이며 약간 씩 다릅니다.

+0

오 위! Java 기본 사항 – CQM

1

super은 확장하려는 클래스의 수퍼 클래스 생성자를 호출하는 데 사용됩니다. the documentation을보십시오 : SimpleAdapter의 생성자에는 다른 인수가 있습니다.