-3

J'ai créé une vue de grille personnalisée qui inclut la vue de l'image et la vue du texte. Je veux prendre le clic sur les deux vue comme cliquer sur l'icône d'image aussi bien que la vue de texte. Une autre chose est que cette vue de grille personnalisée est implémentée en fragment. J'ai utilisé la classe d'adaptateur pour définir l'icône et les titres de texte qui s'étend à partir de la classe de l'adaptateur de base. alors s'il vous plaît tout le monde sait la façon de mettre en œuvre s'il vous plaît revenir en arrière avec une réponse .. Merci d'avance.comment prendre cliquez sur l'icône d'image grille personnalisée?

+0

code postal de votre grille personnalisée. @sid –

+0

Veuillez indiquer le code pertinent –

Répondre

0

Essayez ceci,

JAVA:

public class MyAdapter extends BaseAdapter 
{ 
    /* Variable declaration */ 
    private final Context mContext; 
    private final ArrayList<Menu> al_Menu; 
    private Holder viewHolder; 


    public MyAdapter (Context p_context, ArrayList<Menu> al_Menu) 
    { 
     super(); 
     this.mContext = p_context; 
     this.al_Menu = al_Menu; 
    } 

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

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

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

    @Override 
    public View getView(final int p_int_pos, View p_v_convertView, ViewGroup p_vg_parent) 
    { 
     if (p_v_convertView == null) 
     { 
      /*inflate the layout */ 
      LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      p_v_convertView = inflater.inflate(R.layout.adapter_my, p_vg_parent, false); 
      viewHolder = new Holder(); 
      viewHolder.iv_image =(ImageView) p_v_convertView.findViewById(R.id.icon_image); 
      viewHolder.tv_text =(TextView) p_v_convertView.findViewById(R.id.icon_text); 
      p_v_convertView.setTag(viewHolder); 
     } 
     else 
     { 
      viewHolder = (Holder) p_v_convertView.getTag(); 
     } 
     /*set text*/ 
     viewHolder.tv_text.setText(al_Menu.get(p_int_pos).getStrMenuName()); 

     /*set image*/ 
     viewHolder.iv_search.setImageResource(al_Menu.get(p_int_pos).getStrMenuImage()); 

     viewHolder.iv_image.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       //do here 
      } 
     }); 

     viewHolder.tv_text.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       //do here 
      } 
     }); 

     return p_v_convertView; 
    } 

    class Holder 
    { 
     ImageView iv_image; 
     TextView tv_text; 
    } 
} 

adapter_my.xml

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     > 

      <ImageView 
       android:id="@+id/icon_image" 
       android:layout_width="90dp" 
       android:layout_height="90dp" 
       android:layout_gravity="center_horizontal" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="4dp" 
       android:scaleType="fitXY" 
       /> 

      <TextView 
       android:id="@+id/icon_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/icon_image" 
       android:layout_gravity="center" 
       android:gravity="center" 
       android:textSize="17sp" 
       android:textColor="#000000"/> 

    </RelativeLayout> 
+0

où vous réglez l'icône de l'image sur l'affichage de l'image? – sid

+0

définir l'icône imageview ci-dessous viewHolder.tv_text.setText – user2025187

+0

vous êtes directement mettre setOnClickListener sur l'image ci-dessous viewHolder.tv_text.setText. – sid

0

Vous devez mettre les deux views dans un container puis attribuer onClick au container. puis définissez android:duplicateParentState="true" pour activer le même onClick method à child views.

<RelativeLayout 
     android:id="@+id/relativeLayout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/textView" 
     android:duplicateParentState="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:duplicateParentState="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView" 
     app:srcCompat="@mipmap/ic_launcher" /> 
</RelativeLayout>