图像适配器未显示在网格视图中

Image Adapter not showing up in Grid View

我正在尝试以网格视图的形式设置图像,但我看不到任何图像 images.I 希望它们在 activity.How 上以缩略图视图显示 我可以在两个网格视图中显示图像吗列:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_fit_employess"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">


    <GridView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="2"
        android:id="@+id/admin_homepage_grid"
        />
</LinearLayout>

这是我的图像适配器 class

public class ImageAdapter extends BaseAdapter {


int[] icons={ R.mipmap.new_admissions,R.mipmap.inbox,R.mipmap.courses,R.mipmap.parent,R.mipmap.teacher
};

    private Context context;

    public ImageAdapter(Context c)
    {
        context = c;
    }
    @Override
    public int getCount() {
        return 0;
    }

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if(convertView==null)
        {
            imageView=new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(600,600));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5,5,5,5);
        }
        else{

            imageView=(ImageView)convertView;
        }
        imageView.setImageResource(icons[position]);
        return imageView;
    }

}

这是我的 Activity class

 public class LibAdminHomepage extends AppCompatActivity {

GridView gv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lib_admin_homepage);

    gv=(GridView)findViewById(R.id.admin_homepage_grid);
    gv.setAdapter(new ImageAdapter(this));

    gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch (position){
                case 0:
                    Toast.makeText(LibAdminHomepage.this,""+position,Toast.LENGTH_SHORT).show();
                    break;
                case 1:
                    Toast.makeText(LibAdminHomepage.this,""+position,Toast.LENGTH_SHORT).show();
                    break;
                case 2:
                    Toast.makeText(LibAdminHomepage.this,""+position,Toast.LENGTH_SHORT).show();
                    break;
                case 3:
                    Toast.makeText(LibAdminHomepage.this,""+position,Toast.LENGTH_SHORT).show();
                    break;
                case 4:
                    Toast.makeText(LibAdminHomepage.this,""+position,Toast.LENGTH_SHORT).show();
                    break;

            }

        }
    });



}

}

您在适配器 getCount 上返回 0

试试这个代码:

 public class ImageAdapter extends BaseAdapter {


int[] icons={ R.mipmap.new_admissions,R.mipmap.inbox,R.mipmap.courses,R.mipmap.parent,R.mipmap.teacher
}; 

    private Context context;

    public ImageAdapter(Context c)
    { 
        context = c;
    } 
    @Override 
    public int getCount() { 
        return icons.length; 
    } 

    @Override 
    public Object getItem(int position) {
        return icons[position]; 
    } 

    @Override 
    public long getItemId(int position) {
        return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if(convertView==null)
        { 
            imageView=new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(600,600));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5,5,5,5);
        } 
        else{ 

            imageView=(ImageView)convertView;
        } 
        imageView.setImageResource(icons[position]);
        return imageView;
    }

只需用此替换您的 getCount() 适配器方法,您将获得图像

@Override
public int getCount() {
    return icons.length;
}