OnClickListener del primer elemento de GridView no funciona

Esta pregunta ha sido contestada aquí

Pero mi requisito es reutilizar vistas, ya que tengo que lidiar con datos grandes por lo que no puedo iniciar el objeto de visor cada vez que necesito mostrar la vista.

Estoy usando la vista de cuadrícula con el patrón de titular de la vista cuando vuelvo a usar convertView que onClickListener para el primer artículo no respondo y tocando en cualquier lugar en gridview completa su acción.

A continuación se muestra mi código para el diseño con el elemento GridView.

<GridView android:id="@+id/peopleList" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="2" android:clickable="false" android:gravity="center" android:focusable="false" android:scrollbars="none" android:visibility="visible" android:stretchMode="columnWidth" android:focusableInTouchMode="false" android:background="@color/transparent"> </GridView> 

A continuación se muestra mi diseño para los elementos gridView

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selector_gridview_data"> <com.android.volley.toolbox.NetworkImageView android:id="@+id/peopleImage" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/light_color" android:scaleType="fitXY" android:src="@drawable/image_placeholder" /> <TextView android:id="@+id/peopleNameText" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="center|top" android:background="@drawable/picture_gradient_small" android:gravity="left|center" android:paddingLeft="@dimen/horizontal_margin_10dp" android:text="abc123" android:textColor="@color/white" android:textSize="15sp" > </TextView> <ImageButton android:id="@+id/followUnfollow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:layout_marginBottom="@dimen/horizontal_margin_10dp" android:layout_marginRight="@dimen/vertical_margin_5dp" android:background="@color/transparent" android:src="@drawable/follow" /> </FrameLayout> 

A continuación se muestra el código de mi adaptador getView ()

  @Override public View getView(int position, View convertView, ViewGroup parent) { final Person mDiscoverPeople = mDiscoverPlacesList.get(position); if (convertView == null) { mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.discover_people_grid_data_update, parent, false); mDiscoverPeopleListItemViewHolder = new DiscoverPeopleListItemViewHolder(); mDiscoverPeopleListItemViewHolder.peopleImage = (NetworkImageView) convertView.findViewById(R.id.peopleImage); mDiscoverPeopleListItemViewHolder.peopleName = (TextView) convertView.findViewById(R.id.peopleNameText); mDiscoverPeopleListItemViewHolder.mFrameLayout = (FrameLayout) convertView.findViewById(R.id.fl); mDiscoverPeopleListItemViewHolder.follow = (ImageView) convertView.findViewById(R.id.followUnfollow); convertView.setTag(mDiscoverPeopleListItemViewHolder); } else { mDiscoverPeopleListItemViewHolder = (DiscoverPeopleListItemViewHolder) convertView.getTag(); } mDiscoverPeopleListItemViewHolder.peopleImage.setImageUrl(mDiscoverPeople.getImgUrl(), imageLoader, false); mDiscoverPeopleListItemViewHolder.mFrameLayout.setLayoutParams(new GridView.LayoutParams(AppConstants.columnWidth - AppConstants.columnPadding, AppConstants.columnWidth - AppConstants.columnPadding)); mDiscoverPeopleListItemViewHolder.peopleName.setText(mDiscoverPeople.getName()); if (mDiscoverPeople.isFollowed()) mDiscoverPeopleListItemViewHolder.follow.setImageResource(R.drawable.following); else mDiscoverPeopleListItemViewHolder.follow.setImageResource(R.drawable.follow); mDiscoverPeopleListItemViewHolder.follow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FollowUnfollowUser mFollowUnfollowUser = new FollowUnfollowUser(mContext, mDiscoverPeopleListItemViewHolder.follow, mDiscoverPeople); mFollowUnfollowUser.followUnFollowUser(AppConstants.DISCOVER_PEOPLE); Toast.makeText(mContext, "Follow/Unfollow", Toast.LENGTH_SHORT).show(); } }); mDiscoverPeopleListItemViewHolder.peopleImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent mUserProfile = new Intent(mContext, FriendsRekkiesList.class); Bundle userData = new Bundle(); userData.putSerializable(AppConstants.USER_DETAILS, mDiscoverPeople); mUserProfile.putExtras(userData); mContext.startActivity(mUserProfile); } }); return convertView; } 

Si no reutilizo mis vistas funciona bien, excepto para el rendimiento de la aplicación, necesito una manera de resolver esto.

Cualquier sugerencia será apreciada …. Thankx

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.