嗨,我知道如何将图像从一个活动发送到另一个活动,并分别从文本视图发送文本到另一个活动。但我想知道在一个活动中我们有文本视图和图像视图。但我需要的是我想将文本和图像从一个活动发送到另一个活动。欢迎提出任何建议。 谢谢。
答案 0 :(得分:1)
要将图片从一个活动传递到另一个活动,请先将图片转换为位图,然后使用以下代码将您的位图转移到其他活动:
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 50, bs);
Intent i = new Intent(this, SecondActivity.class)
i.putExtra("Image", bs.toByteArray());
i.putExtra("Text", yourTextView.gettext().toString());
startActivity(i)
要在第二个活动中检索位图,请编写以下代码:
if(getIntent().hasExtra("Image")) {
Bitmap b = BitmapFactory.decodeByteArray(
getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);
imageview.setImageBitmap(b);
}
if(getIntent().hasExtra("Text")) {
yourTextView.setText(getIntent().getStringExtra("Text"));
}
答案 1 :(得分:0)
发送图片是什么意思?要传递字符串,请使用Intent extras和Bundle。
在你的第一次活动......
someButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.putExtra("text_contents", someTextView.getText().toString();
startActivity(intent);
}
});
在第二个活动onCreate()中,您检索通过Bundle传递的意图额外内容...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String someString = bundle.getString("text_contents");
}
}
如果您的“图片”是R.drawable资源,那么您可以简单地将其添加到意图附加内容中:
intent.putExtra("image_resource", R.drawable.some_image_resource);
从Bundle中检索它,如:
int someImageResource = bundle.getInt("image_resource");
从那里你可以将它应用到一些ImageView:
someImageView.setImageResource(someImageResource);
编辑:略微修正+如果您的“图片”是位图,请参阅Anjali的回答。