使用布局充气填充的GridView [英] populating gridview using layout inflator

查看:185
本文介绍了使用布局充气填充的GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用填充一个LayoutInflator GridView控件。根据我的code是正确的,但我只得到一个空白屏幕输出......如果有人能告诉我什么我做错了,以及如何纠正它..在此先感谢

I am trying to populate a gridview using LayoutInflator.. According to me the code is correct but I am only getting a blank screen as output... if someone could tell me what am i doing wrong and how to rectify it.. Thanks in advance

Activity类

 public class MultipleDocumentViewActivity extends Activity {
   private LayoutInflater inflator = null;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);

           inflator = LayoutInflater.from(getApplicationContext());

           GridView grid = (GridView)inflator.inflate(R.layout.main, null);

           GridAdapter gAdapter = new GridAdapter(this);
           grid.setAdapter(gAdapter);
           setContentView(R.layout.main);


         }
        }

GridAdapter.java

     public class GridAdapter extends BaseAdapter
      {
     private Context context;
     private LayoutInflater layoutInflator = null;

     private Integer[] mThumbnails =                                                                                                           {R.drawable.kunfu1,R.drawable.kunfu2,R.drawable.kunfu3,R.drawable.kunfu4};

         public GridAdapter(Context c)
           {
          context = c;

          Log.d("Aditi","Constructor called");
           }
           public int getCount() {

         return mThumbnails.length;
           }

           public Object getItem(int position) {

          return null;
           }

           public long getItemId(int position) {

           return 0;
            }

           public View getView(int position, View grid, ViewGroup parent) 
           {
           layoutInflator =          (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

         if(grid == null)
          {
         layoutInflator = LayoutInflater.from(context);



         grid = layoutInflator.inflate(R.layout.mdv_grid_item, null);

          }
          ImageView imageView =  (ImageView)grid.findViewById(R.id.grid_item);

          imageView.setImageResource(mThumbnails[position]);
          imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

          return grid;

          }

          }




     **mdv_grid_item**


<ImageView android:id="@+id/grid_item"
    android:layout_width="fill_parent" android:layout_height="270dp"
    android:contentDescription="@string/desc">
</ImageView>

**main.xml**
    <?xml version="1.0" encoding="utf-8"?>
      <GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:horizontalSpacing="20dp" android:numColumns="3"
    android:paddingLeft="40dp" android:paddingRight="40dp"
    android:paddingTop="40dp" android:stretchMode="columnWidth"
    android:verticalSpacing="20dp"
    android:listSelector="#00000000"
    android:id = "@+id/grid">
       </GridView>

感谢很多提前

推荐答案

你应该改变你的适配器类:

you should change your adapter class:

 public class GridAdapter extends BaseAdapter
 {
     private Context context;
     private LayoutInflater layoutInflator;

     private Integer[] mThumbnails 
 =                                                                                                           {R.drawable.kunfu1,R.drawable.kunfu2,R.drawable.kunfu3,R.drawable.kunfu4};

     public GridAdapter(Context c){
      context = c;
      layoutInflator =              (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     }

     public int getCount() {
          return mThumbnails.length;
     }

     public Object getItem(int position) {
          return null;
     }

     public long getItemId(int position) {
          return 0;
     }

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

         ImageView imageView;
         if(grid == null) {
             grid = layoutInflator.inflate(R.layout.mdv_grid_item, null);
             imageView =  (ImageView)grid.findViewById(R.id.grid_item);

             grid.setTag(imageView);

          }else{
             imageView = (ImageView)grid.getTag();
          }


          imageView.setImageResource(mThumbnails[position]);
          imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

         return grid;

      }

      }

这篇关于使用布局充气填充的GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆