我创建了一个listview,并在那里解析了json数据(图像和一些文本)。现在我需要将图像传递给其他活动点击,我这样做就像我通过putExtra传递那些文本,我可以轻松解析那里的文本。但是我如何通过.getExtra解析新活动中的图像(获取字符串但无法将其解析为imageview。 我的代码如下: 第一项活动:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, Testic.class);
String prenos = list.get(position).getEmail();
String voda = list.get(position).getPhone();
String name = list.get(position).getName();
String slika = list.get(position).getImage();
intent.putExtra("mail", prenos);
intent.putExtra("voda", voda);
intent.putExtra("name", name);
intent.putExtra("slika", slika);
startActivity(intent);
}
});
第二项活动:
TextView probno = (TextView) findViewById(R.id.probno);
probno.setText(getIntent().getExtras().getString("mail"));
TextView voda = (TextView) findViewById(R.id.voda);
voda.setText(getIntent().getExtras().getString("voda"));
TextView name = (TextView) findViewById(R.id.name);
name.setText(getIntent().getExtras().getString("name"));
ImageView slika = (ImageView) findViewById(R.id.slika);
正如你所看到的,我没有为imageview设置任何活页夹因为我放的一切都不起作用。休息工作正常。
答案 0 :(得分:0)
答案 1 :(得分:0)
这取决于您发送的字符串是什么。这是一种可能性:
Uri uri = Uri.parse(getIntent().getExtras().getString("slika"));
ImageView slika = (ImageView) findViewById(R.id.slika);
slika.setImageURI(uri);
“slika”必须是布局xml中的id。
答案 2 :(得分:0)
将图像的路径放在putExtra中。不要尝试发送图像通知Bitmap或imageview它会很重。
你可以这样做。 保存文件路径intent.putExtra("imagePath", filepath);
通过意图发送图像并使用
String image_path = getIntent().getStringExtra("imagePath");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
myimageview.setImageDrawable(bitmap);
答案 3 :(得分:0)
您创建方法(只需复制粘贴):
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
然后在onCreate上调用它:
new DownloadImageTask((ImageView) findViewById(R.id.slika))
.execute(getIntent().getExtras().getString("slika"));
它应该有效。