快速提问。我在将图像从第一个活动传递到第二个活动时遇到问题。
在第一个活动中,我有以下代码:
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ParseObject todo = urgentTodosAdapter.getItem(position);
String about = todo.getString("comment");
String image = todo.getString("image");
Intent intent = new Intent("com.name.package.DetailsActivity");
intent.putExtra("about",about);
intent.putExtra("image",image);
startActivity(intent);
}
});
此代码可以完美地从第一个视图传递文本,但是图像无法正常工作,我不确定该添加什么内容。这是第二项活动;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details_activity);
Intent i = getIntent();
String title = i.getStringExtra("about");
String thumb = i.getStringExtra("image");
TextView titleTextView = (TextView) findViewById(R.id.title);
titleTextView.setText(title);
ParseImageView imageView = (ParseImageView) findViewById(R.id.image);
ParseFile imageFile = getParseFile("thumb"); (getParseFile is showing up red, meaning error)
if (imageFile != null) {
imageView.setParseFile(imageFile);
imageView.loadInBackground();
}
// imageView.setImageBitmap(bitmap);
}
怎么了?
好吧,让我们尝试这样的事情
第一次活动:
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ParseObject todo = urgentTodosAdapter.getItem(position);
//get the ParseFile here and then get the url in a string
ParseFile image = todo.getParseFile("image"); //getParseFile() is a method of ParseObject
String imageUrl = image.getUrl();
String about = todo.getString("comment");
Intent intent = new Intent("com.package.name.DetailsActivity");
intent.putExtra("about",about);
intent.putExtra("image",imageUrl); //pass along imageUrl
startActivity(intent);
}
});
第二项活动:
private ImageView mImageView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details_activity);
Intent i = getIntent();
String title = i.getStringExtra("about");
String url = i.getStringExtra("image"); //get the url String
TextView titleTextView = (TextView) findViewById(R.id.title);
titleTextView.setText(title);
//I switched from ParseImageView to regular ImageView here
mImageView = (ImageView) findViewById(R.id.image);
new DownloadImageTask(url).execute();
}
public class DownloadImageTask extends AsyncTask<Void, Void, Bitmap> {
private String imageUrl;
public DownloadImageTask(String url) {
this.imageUrl = url;
}
@Override
protected Bitmap doInBackground(Void... params) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
// Log exception
return null;
}
}
@Override
protected void onPostExecute(Bitmap result) {
mImageView.setImageBitmap(result);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句