0

我有 4 个包含不同图像的按钮,

当我在模拟器中单击图像时,我想在gridview中打开图像,它应该以新布局显示图像(它在第一个adaper类中工作正常),但是当我在第二个按钮上打开图像时,模拟器中的图像显示适配器类 2 中的图像,但是当我单击图像时,它会显示第一个适配器类中的图像

ImageActivity.java

public class ImageActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.image_selection);
            Button a,b,c,d;

            b = (Button)findViewById(R.id.button1);
           b.setOnClickListener(new OnClickListener() {         
                @Override
                public void onClick(View arg0) {
                    Intent i = new Intent(ImageActivity.this, screen2.class);
                    startActivity(i);
                }
            });
           } 
         }

screen2.java

public class screen2 extends Activity{
     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.screen2);   

            GridView gridview = (GridView) findViewById(R.id.gridview);
            gridview.setAdapter(new ImageAdapter2(this));

            gridview.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
               Intent i = new Intent(getApplicationContext(), FullImageActivity1.class);
                    // passing array index
                    i.putExtra("id", position);
                    startActivity(i);
                }
            });
     }
    }

ImageAdapter.java

public class ImageAdapter2 extends BaseAdapter {
    private Context mContext;
    public Integer[] images = {
         R.drawable.baby1, R.drawable.baby2,
         R.drawable.baby3,R.drawable.baby4,
    };
    public ImageAdapter2(Context c) {
        mContext = c;
    }
    public int getCount() {
        return images.length;
    }
    public Object getItem(int position) {
        return null;
    }
    public long getItemId(int position) {
        return 0;
    }
    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {  // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(60, 60));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(images[position]);
        return imageView;
    }

}

FullImageActivity.java

    public class FullImageActivity2 extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.full_image2);

        Intent intent = getIntent();
        int position = intent.getExtras().getInt("id");
        ImageAdapter2 imageAdapter = new ImageAdapter2(this);

        ImageView imageView = (ImageView) findViewById(R.id.full_image_view);
        imageView.setImageResource(imageAdapter.images[position]);      
    }
}

logcat 是

    07-19 15:24:24.627: E/AndroidRuntime(1709): FATAL EXCEPTION: main
07-19 15:24:24.627: E/AndroidRuntime(1709): java.lang.RuntimeException: Unable to start activity ComponentInfo{abhinai.image/abhinai.image.FullImageActivity3}: java.lang.NullPointerException
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.os.Looper.loop(Looper.java:137)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.ActivityThread.main(ActivityThread.java:5039)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at java.lang.reflect.Method.invokeNative(Native Method)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at java.lang.reflect.Method.invoke(Method.java:511)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at dalvik.system.NativeStart.main(Native Method)
07-19 15:24:24.627: E/AndroidRuntime(1709): Caused by: java.lang.NullPointerException
07-19 15:24:24.627: E/AndroidRuntime(1709):     at abhinai.image.FullImageActivity3.onCreate(FullImageActivity3.java:19)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.Activity.performCreate(Activity.java:5104)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-19 15:24:24.627: E/AndroidRuntime(1709):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-19 15:24:24.627: E/AndroidRuntime(1709):     ... 11 more

谁能帮我

4

0 回答 0