2016-03-20 3 views
1

Почему метод getView называется только один раз? и ничего не вернуть?CustomAdapter/getView() вызывается только один раз?

вот мой код

public class GridViewAdapter extends BaseAdapter { 

Context mContext; 
ArrayList<String> list; 

GridViewAdapter(Context context,ArrayList<String> list){ 
    this.mContext = context; 
    this.list = new ArrayList<>(list); 
} 

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

@Override 
public Object getItem(int position) { 
    return list.get(position); 
} 

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

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ImageView view = (ImageView) convertView; 

    if(view==null){ 
     view = new ImageView(mContext); 
    } 
    Picasso.with(mContext).load(String.valueOf(list.get(position))).resize(360, 512).into(view); 
    return view; 
} 

}

Примечание: размер ArrayList прошло 20! так что это не пустой список!

+0

потому что вы возвращаетесь 0 для getItemId (позиция), каждый вид нуждается в свой собственный уникальный идентификатор –

+0

я вернулся в положение себя и до сих пор не работает! –

ответ

0

Попробуйте простирающийся

ArrayAdapter<String> 
+0

Я пытаюсь создать пользовательский адаптер, что не так с расширением класса BaseAdapter! –

+0

ArrayAdapter расширяет BaseAdapter и реализует большинство необходимых функций. –

+0

Кроме того, при создании образа вы используете базовый конструктор аргументов, иногда этого недостаточно для android. Могу я предложить вместо создания единственного представления, вы создаете макет xml с ImageView in, а затем раздуваете этот макет, чтобы получить обратный вид –

 Смежные вопросы

  • Нет связанных вопросов^_^