2015-12-01 2 views
0

Я делаю заказной адаптер, расширяющий ArrayAdapter. Когда я расширяю BaseAdapter, он работает нормально, но когда я использую ArrayAdapter, он показывает ошибку на super(). Мой код адаптера:Пользовательский адаптер показывает ошибку на super()

CustomAdapter.java

public class CustomAdapter extends ArrayAdapter { 

private final Context context; 
private List<String> Title=new ArrayList<String>(); 
private List<String> Dis=new ArrayList<String>(); 
private List<String> Desc=new ArrayList<String>(); 
public static TextView title; 
public CustomAdapter(Context context,List<String>title,List<String>dis,List<String> desc) { 
    super(); //ERROR HERE 

    this.context = context; 
    this.Title=title; 
    this.Dis=dis; 
    this.Desc=desc; 

} 
@Override 
public int getCount() { 
    return Title.size(); 
} 

@Override 
public Object getItem(int position) { 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View v = inflater.inflate(R.layout.custom_adapter,parent, false); 
    title = (TextView)v.findViewById(R.id.helloText); 
    final TextView dis = (TextView)v.findViewById(R.id.dis); 
    final TextView descr = (TextView)v.findViewById(R.id.descr); 

    title.setText(Title.get(position)); 
    dis.setText(Dis.get(position)); 
    descr.setText(Desc.get(position)); 

    return v; 
} 
} 

И я хочу, чтобы назвать это как:

CustomAdapter ad=new CustomAdapter(this,titles,dis,desc); 

Где названия, Дис, убывание списки.

+0

где вы называете CustomAdapter (активность или фрагмент) –

+0

@AhmadAlkhateeb от деятельности – Prakhar

+0

Читайте базовые конструкторы ArrayAdapters [здесь] (http://developer.android.com/reference/android/widget/ArrayAdapter.html) –

ответ

1

посмотрите на основы java для объяснения. Это выдержка:. «Вы не должны предоставлять никакой constructors для своего класса, но вы должны быть осторожны, делая это компилятор автоматически предоставляет без аргументов, по умолчанию constructor для любого класса без constructors Это по умолчанию constructor. вызовет конструктор без аргументов суперкласса. В этой ситуации компилятор будет жаловаться, если суперкласс не имеет конструктора без аргументов, поэтому вы должны убедиться, что он это делает. Если у вашего класса нет явного суперкласса, то он имеет неявный суперкласс Object, который имеет конструктор без аргументов. "

Вы можете прочитать всю статью here

И дальше вы могли бы взглянуть на ArrayAdapter источник, как предложил 0X0nosugar.

+0

вы можете посмотреть здесь и помочь мне, что случилось с моим адаптером? http://stackoverflow.com/questions/34013764/swipable-cards-library – Prakhar

0

Вам необходимо пройти параметр в супер(), заменить супер() со следующими

super(context,title,dis,desc); 
+0

говорит, что не может разрешиться для заданных параметров – Prakhar

+0

, это не сработает, потому что нет конструктора для аргументов (Контекст, Список, Список, Список) – 0X0nosugar