2013-04-24 4 views
0

Я создал представление текущей недели, используя GridView. Я использую BaseAdapter для генерации GridView.не может получить объект из 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"); 
     } 
    }); 

я получаю объект 'о' нулевой.

(EDIT)

мой weekAdapter

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; 
}} 
+0

показать вашу неделю Код Adapter –

+0

Очень старая проблема – Trikaldarshi

+0

создать пользовательский адаптер – Trikaldarshi

ответ

2

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

Ваш номер недели getItem() недействителен. Это проблема. Это должно быть:

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

, что означает ... может у меня дать exapmle .. – Vikky

+0

Вам нужно проверить код класса WeakAdapter. Он должен иметь метод getItem(). Вы должны вернуть объект в позицию из getItem(). – TieDad

+0

ha ha ha lol ..... какой глупое ошибка мной ...... – Vikky

1

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

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

    return weekCellItems.get(arg0); 
} 

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

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