2

有没有办法将文本标签添加到android gridview?我正在使用标准的 android 示例Hello GridView

例如,如果我想在每个图像下方添加一个图像标题,有没有办法做到这一点?如果是这样,有人可以解释这是如何工作的吗?或者,是否有替代方法来实现这一点?谢谢!

4

3 回答 3

7

您可以像在 ListView 中一样创建自定义 GridView,我们定义自定义布局以显示 ListRow 您也可以为 GridView 项创建自定义布局,请参阅此示例以获取 GridView。

使用简单的 GridView 您可以像现在一样只显示一个 ImageView,现在如果您想为每个 Grid Item 添加另一个 View(文本),您必须创建一个 XML 文件来包含 TextView 和 ImageView。

然后在 Adapter 和 GetView 方法中使用该 XML 文件,您可以将 Image 和 Text 设置为您的视图。

这是另一个相同的例子 这是另一个很好的例子

于 2011-12-09T05:20:36.773 回答
1

例如,采用 LinearLayout 并添加 imageview 、 textview 并膨胀该布局并将其分配给 convertview 。

于 2011-12-09T05:16:12.710 回答
0

从您的活动中调用此适配器

      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"
};
于 2011-12-09T08:45:19.233 回答