如何点击自定义网格视图图像图标?
我创建了一个包含图像视图和文本视图的自定义网格视图。我想单击这两个视图像点击图像图标以及文本视图。还有一件事是这个自定义网格视图是在片段中实现的。我使用适配器类来设置从Base Adapter类扩展的图标和文本标题。 所以请任何人知道如何实现这个请返回与答案.. 在此先感谢。如何点击自定义网格视图图像图标?
试试这个,
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>
设置为将图像图标设置为图像视图的位置? – sid
在viewHolder.tv_text.setText下面设置imageview图标 – user2025187
您直接将setOnClickListener设置为viewHolder.tv_text.setText下方的图像。 – sid
你需要把两个在一个container
views
然后分配onClick
到container
。然后设置android:duplicateParentState="true"
以启用相同的onClick method
至child views
。您的自定义的GridView的
<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>
邮编。 @sid –
请将相关代码 –