Java 图像的Gridview查看每个图像打开不同的活动

Java 图像的Gridview查看每个图像打开不同的活动,java,android,gridview,imageview,Java,Android,Gridview,Imageview,我正在尝试实现一个Gridview,它显示来自drawables的预定义ImagesView数组,我希望在单击打开活动时显示每个ImageView,下面您可以看到我的代码 ImageAdapter.java import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.

我正在尝试实现一个Gridview,它显示来自drawables的预定义ImagesView数组,我希望在单击打开活动时显示每个ImageView,下面您可以看到我的代码

ImageAdapter.java

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

//CLASS TO FILL THE GRID VIEW AS ADAPTER AT activity_main.xml WITH IMAGES OF OUR CATEGORIES

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    // Keep all Images in array
    public Integer[] mThumbIds = {
            R.drawable.test_icon_1, R.drawable.test_icon_2,
            R.drawable.test_icon_3, R.drawable.test_icon_4,
    };

    // Constructor
    public ImageAdapter(Context c){
        mContext = c;
    }

    @Override
    public int getCount() {

        return mThumbIds.length;
    }

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

    @Override
    public long getItemId(int position) {

        return 0;
    }

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

        ImageView imageView = new ImageView(mContext);
        imageView.setImageResource(mThumbIds[position]);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

        return imageView;
    }

}
activity_main.xml

            <GridView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/grid_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:numColumns="2"
            android:verticalSpacing="10dp"
            android:horizontalSpacing="10dp"
            android:columnWidth="90dp"
            android:stretchMode="columnWidth"
            android:gravity="center"
            />

我找不到一种方法来实现这一点,并让它理解要打开哪个活动,因为稍后我想通过显示从SQLite数据库请求的ImageView来实现这一点,并在单击时打开特定的活动


我想通过传递一个整数来实现这一点,例如1,2,3,4。。。将其作为父类别id的SQL参数并动态显示子类别id有一个非常简单的解决方案。与其将Gridview的基础值集设置为整数数组,不如定义一个自定义类,该类还指定要打开的活动。例如:

    class MyGridviewClass{

    public MyGridviewClass(Class<? extends Activity> mActivityToOpen, Integer mGridviewImageLoc) {
        this.mActivityToOpen = mActivityToOpen;
        this.mGridviewImageLoc = mGridviewImageLoc;
    }

    public Class<? extends Activity> getmActivityToOpen() {
        return mActivityToOpen;
    }

    public void setmActivityToOpen(Class<? extends Activity> mActivityToOpen) {
        this.mActivityToOpen = mActivityToOpen;
    }

    public Integer getmGridviewImageLoc() {
        return mGridviewImageLoc;
    }

    public void setmGridviewImageLoc(Integer mGridviewImageLoc) {
        this.mGridviewImageLoc = mGridviewImageLoc;
    }

    private Class<? extends Activity> mActivityToOpen;
    private Integer mGridviewImageLoc;

}
class MyGridviewClass{

public MyGridviewClass(类感谢您的回复。我理解您的代码,但我无法指定静态打开哪个活动。因为我将从SQLite db检索一个类别。如果类别为空,我将不显示imageview,因此不会显示活动