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?
Répondre
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>
où vous réglez l'icône de l'image sur l'affichage de l'image? – sid
définir l'icône imageview ci-dessous viewHolder.tv_text.setText – user2025187
vous êtes directement mettre setOnClickListener sur l'image ci-dessous viewHolder.tv_text.setText. – sid
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>
code postal de votre grille personnalisée. @sid –
Veuillez indiquer le code pertinent –