我无法将Bundle或其他东西从片段传递给Activity。当我只是尝试从片段导航到Activity.class而不传递任何内容时,它会执行并向我显示其他活动,但是当我尝试通过包传递图像时,它只是重新启动了我的应用程序而未显示其他活动。我不知道我的代码有什么问题。 Logcat没有显示任何错误。
MyFragment活动->单击imageview时,我正在传递位数组
case R.id.pictureView:
photo= Util.getBytes(bp);
Intent i = new Intent(getActivity(), ScaleImageViewActivity.class);
Bundle bundle = new Bundle();
bundle.putByteArray("image", photo);
i.putExtras(bundle);
startActivity(i);
break;
和我进行捆绑销售的活动
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photoview);
Bundle bundle = getIntent().getExtras();
bundle.getByteArray("image");
byte [] photo = bundle.getByteArray("image");
Bitmap bp = Util.getImage(photo);
ScaleImageView imageView = (ScaleImageView)findViewById(R.id.imageZoom);
imageView.setImageBitmap(bp);
}
答案 0 :(得分:2)
以这种方式进行。 首先将这段代码放入片段中。
iv = (ImageView) view.findViewById(R.id.iv);
Bitmap bitmap = ((BitmapDrawable) iv.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
final byte[] photo = baos.toByteArray();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity(), ScaleImageViewActivity.class);
Bundle bundle = new Bundle();
bundle.putByteArray("image", photo);
i.putExtras(bundle);
startActivity(i);
}
});
现在在您的活动中,输入下面的代码。
Bundle bundle = getIntent().getExtras();
bundle.getByteArray("image");
byte [] photo = bundle.getByteArray("image");
final Bitmap bmp = BitmapFactory.decodeByteArray(photo, 0, photo.length);
final ImageView image = (ImageView) findViewById(R.id.imageView1);
image.post(new Runnable() {
@Override
public void run() {
image.setImageBitmap(Bitmap.createScaledBitmap(bmp, image.getWidth(),
image.getHeight(), false));
}
});