在此先感谢,我正在尝试将值从一个活动传递到另一个活动。
我的大多数代码都有效,但是当用户点击列表视图图像时,我想在另一个活动中显示该图像。
活动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]);
}
}
答案 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);