3

このチュートリアルを使用して、gridviewを使用してメニューを作成しようとしています。

残念ながら、メニューをスクロールしていると、メニュー項目の位置がランダムに移動します。画像とタイトルを表示するために.xmlを使用しています。

ところで:GridViewを並べ替える方法はありますか?

public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View gridView;

    if (convertView == null) {
     String tmp = menuItems[position];

        gridView = new View(context);

        gridView = inflater.inflate(R.layout.menuitem, null);

        TextView label = (TextView) gridView.findViewById(R.id.menuitem_label);
        label.setText(context.getString(context.getResources().getIdentifier("string/txt_"+tmp, null, context.getPackageName())));

        ImageView img = (ImageView) gridView.findViewById(R.id.menuitem_image);
     SVG svg_img = SVGParser.getSVGFromResource(context.getResources(), context.getResources().getIdentifier("raw/"+tmp, null, context.getPackageName()));
     if (svg_img != null)
        img.setImageDrawable(svg_img.createPictureDrawable());

  } else {
     gridView = (View) convertView;
  }

    return gridView;
}
4

1 に答える 1

4
 public View getView(int position, View convertView, ViewGroup parent) {
        View gridView;
            if (convertView == null) {  // if it's not recycled, initialize some attributes
             LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            gridView = inflater.inflate(R.layout.menuitem, null);

           }
           else
           { 
             gridView= convertView;
           }

         TextView label = (TextView) gridView.findViewById(R.id.menuitem_label);
        label.setText(context.getString(context.getResources().getIdentifier("string/txt_"+tmp, null, context.getPackageName())));

    ImageView img = (ImageView) gridView.findViewById(R.id.menuitem_image);
     SVG svg_img = SVGParser.getSVGFromResource(context.getResources(),   context.getResources().getIdentifier("raw/"+tmp, null, context.getPackageName()));

    img.setImageDrawable(svg_img.createPictureDrawable());

        return gridView;


    }

グリッドビューとリサイクルについてもっと勉強してください。ネットだけでなく、ここスタックオーバーフローにもたくさんのチュートリアルがあります

コードを再作成します。まだ試していません

于 2012-09-21T10:05:19.457 に答える