2

Android gridviewにテキスト ラベルを追加する方法はありますか? 標準の Android の例であるHello GridViewを使用しています。

たとえば、各画像の下に画像のタイトルを追加したい場合、これを行う方法はありますか? もしそうなら、誰かがこれがどのように機能するか説明できますか? または、これを実装する別の方法はありますか? ありがとう!

4

3 に答える 3

7

ListRow を表示するカスタム レイアウトを定義する ListView のように、カスタム GridView を作成できます。また、GridView アイテムのカスタム レイアウトを作成することもできます。GridView については、この例を参照してください。

単純な GridView の使用 現在行っているように 1 つの ImageView を表示できます。各グリッド アイテムに別のビュー (テキスト) を追加する場合は、TextView と ImageView を含む 1 つの XML ファイルを作成する必要があります。

次に、アダプターでその XML ファイルを使用し、GetView メソッドでイメージとテキストをビューに設定できます。

これは同じことの別の例であり、ここに別の良い例があります。

于 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 に答える