Не может получить объект из gridView

Я создал вид текущей недели, используя GridView, Я использую BaseAdapter для генерации GridView,

Вот как я ценю GridView

        ArrayList<WeekCellItem> weekCellItems = getData(scheduleListdto);
    gridview1.setAdapter(new WeekAdapter(getApplicationContext(),weekCellItems));

И мне нужно CurrentItem в положении, когда я нажал на каждую ячейку на GridView,

Я написал onItemClickListener для GridView

gridview1.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Object o= gridview1.getItemAtPosition(arg2);
            Log.e("", "hhh");
        }
    });

Я получаю объект "о" как ноль.

(РЕДАКТИРОВАТЬ)

Моя неделя Адаптер

public class WeekAdapter extends BaseAdapter
{
Context mycontext;
ArrayList<String>weekHeads;
ArrayList<WeekCellItem> weekCellItems;
LayoutInflater inflater;
public WeekAdapter(Context c, ArrayList<WeekCellItem> items, ArrayList<String> obj)
{
    weekCellItems=items;
    weekHeads=obj;
    mycontext=c;
    inflater = LayoutInflater.from(c);
}
public int getCount() {
    // TODO Auto-generated method stub
    return weekCellItems.size();
}

public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return null;
}

public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return 0;
}

public View getView(int pos, View convertview, ViewGroup parent) {
    // TODO Auto-generated method stub
    viewHolder holder = new viewHolder();
    if(convertview==null)
    {
        convertview = inflater.inflate(R.layout.weekly_layout, null);
        holder.tv = (TextView) convertview.findViewById(R.id.textweeklylayout);
        convertview.setTag(holder);
    }
    else
        holder=(viewHolder)convertview.getTag();
    return convertview;
}
private static class viewHolder
{
    TextView tv;
}}

2 ответа

Решение

Вам нужно реализовать адаптер getItem() метод. gridview.getItemAtPosition() по очереди вызывать адаптеры getItem()-метод.

Ваш WeekAdapter's getItem() возвращает ноль. Это проблема. Так должно быть:

public Object getItem(int arg0) {
    return weekCellItems.get(arg0); 
}

Добавьте следующий код.

public Object getItem(int arg0) {
    if (weekCellItems == null || weekCellItems.size() == 0)
        return null;

    return weekCellItems.get(arg0); 
}

Почему: Вы реализуете свой собственный Адаптер, поэтому вам нужно изменить getItem() по мере необходимости.

Другие вопросы по тегам