有没有办法将文本标签添加到android gridview?我正在使用标准的 android 示例Hello GridView。
例如,如果我想在每个图像下方添加一个图像标题,有没有办法做到这一点?如果是这样,有人可以解释这是如何工作的吗?或者,是否有替代方法来实现这一点?谢谢!
有没有办法将文本标签添加到android gridview?我正在使用标准的 android 示例Hello GridView。
例如,如果我想在每个图像下方添加一个图像标题,有没有办法做到这一点?如果是这样,有人可以解释这是如何工作的吗?或者,是否有替代方法来实现这一点?谢谢!
您可以像在 ListView 中一样创建自定义 GridView,我们定义自定义布局以显示 ListRow 您也可以为 GridView 项创建自定义布局,请参阅此示例以获取 GridView。
使用简单的 GridView 您可以像现在一样只显示一个 ImageView,现在如果您想为每个 Grid Item 添加另一个 View(文本),您必须创建一个 XML 文件来包含 TextView 和 ImageView。
然后在 Adapter 和 GetView 方法中使用该 XML 文件,您可以将 Image 和 Text 设置为您的视图。
例如,采用 LinearLayout 并添加 imageview 、 textview 并膨胀该布局并将其分配给 convertview 。
从您的活动中调用此适配器
GridView view =(GridView) findViewbyId(is of grid view here);
view.setAdapter(new BottomMenuGridAdaptor(this.context));
这是适配器的代码
public class BottomMenuGridAdaptor extends BaseAdapter {
private Context context;
public BottomMenuGridAdaptor(Context context) {
super();
this.context = context;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.tab_button, null);
}
LinearLayout ll=(LinearLayout) convertView.findViewById(R.id.linear_topbar);
if(position==PostionHandler.getPosition(context))
ll.setBackgroundResource(R.drawable.tab_blue_bg);
else
ll.setBackgroundResource(R.drawable.tab_red_bg);
ImageView imageView=(ImageView)convertView.findViewById(R.id.icon);
imageView.setImageResource(mThumbIds[position]);
TextView txt= (TextView) convertView.findViewById(R.id.title);
txt.setText(mThumbtext[position]);
return convertView;
}
private Integer[] mThumbIds = {
R.drawable.temp_thisweek,
R.drawable.temp_store,
R.drawable.temp_mylibrary,
R.drawable.temp_lateststore,
R.drawable.temp_more
};
private String[] mThumbtext = {
"This Week",
"C&EN Store",
"My Library",
"Latest News",
"More"
};