显示单独活动中单击的项目

时间:2014-11-19 21:49:25

标签: listview android-intent android-activity arraylist onitemclick

在此先感谢,我正在尝试将值从一个活动传递到另一个活动。

我的大多数代码都有效,但是当用户点击列表视图图像时,我想在另一个活动中显示该图像。

活动A这里我试图传递当前点击的图像

       mSelfieAdapter = new SelfieImageAdapter(this, 
        R.layout.selfie_list,
                imageArry);
        ListView dataList = (ListView) findViewById(R.id.list);
        dataList.setAdapter(mSelfieAdapter);
        // up to here the listview is displayed for the user.

        dataList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                List<SelfieImage> selfs = db.getAllSelfies();
                Intent i = new Intent(DailySelfieActivity.this, Camera.class);
                // Pass all data flag
                i.putExtra("image",imageInByte );
                System.out.println(imageInByte);
                // Pass a single position
                i.putExtra("position", position);
                // Open SingleItemView.java Activity
                startActivity(i);
            }

        });

活动B这里我试图以完整尺寸显示图像。

public class Camera extends Activity {
     byte imageInByte[];
    ImageView imgflag;
    int position;

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

        Intent i = getIntent();

        position = i.getExtras().getInt("position");
        imageInByte = i.getByteArrayExtra("image");
        System.out.println(imageInByte);

        imgflag = (ImageView) findViewById(R.id.flag);

        imgflag.setImageResource(imageInByte[position]);


    }


}

1 个答案:

答案 0 :(得分:0)

**我已将上述代码更改为:**

,从而解决了上述问题
    Intent i = getIntent();
    imageInByte = i.getByteArrayExtra("image");
    imgflag = (ImageView) findViewById(R.id.flag);

    Bitmap bm = BitmapFactory.decodeByteArray(imageInByte, 0, imageInByte.length);
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);

    imgflag.setImageBitmap(bm);
    imgflag.setScaleType(ImageView.ScaleType.FIT_XY);
相关问题