Android 从库的onItemClick更新视图寻呼机
我已经设置了一个查看寻呼机和一个图库。我想从我的多媒体资料的OnItemClickListener中更新我的View Pager的ImageView,并将ImageView传递给它,以便它能够更新,从而获得更大的图像视图 我怎样才能做到这一点?如果有人能帮我,那太好了,谢谢 以下是我为onClickGallery设置的内容,请参见课程底部:Android 从库的onItemClick更新视图寻呼机,android,imageview,android-viewpager,android-gallery,Android,Imageview,Android Viewpager,Android Gallery,我已经设置了一个查看寻呼机和一个图库。我想从我的多媒体资料的OnItemClickListener中更新我的View Pager的ImageView,并将ImageView传递给它,以便它能够更新,从而获得更大的图像视图 我怎样才能做到这一点?如果有人能帮我,那太好了,谢谢 以下是我为onClickGallery设置的内容,请参见课程底部: public void updateUI(final SimpleItemType item) { class ImagePagerAdapter
public void updateUI(final SimpleItemType item) {
class ImagePagerAdapter extends PagerAdapter {
private List<String> mImages = item.pictureURL;
@Override
public int getCount() {
if (mImages == null) {
SuperToast.create(
getApplicationContext(),
"No image available",
SuperToast.Duration.VERY_SHORT,
Style.getStyle(Style.GRAY,
SuperToast.Animations.SCALE)).show();
}
else {
return mImages.size();
}
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = DetailActivity.this;
ImageView imageView = new ImageView(context);
int padding = context.getResources().getDimensionPixelSize(
R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
Picasso.with(context).load(item.pictureURL.get(position)).fit()
.centerInside().into(imageView);
((ViewPager) container).addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
class ImageGalleryAdapter extends BaseAdapter {
private List<String> mImages = item.pictureURL;
@Override
public int getCount() {
return mImages.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = (ImageView) convertView;
Context context = DetailActivity.this;
if (imageView == null) {
imageView = (ImageView) getLayoutInflater().inflate(
R.layout.item_gallery_image, parent, false);
}
Picasso.with(context).load(item.pictureURL.get(position)).fit()
.centerInside().into(imageView);
return imageView;
}
}
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Here I would like to pass my ImageView from gallery to view pager
}
});
尝试将viewpager的imageview声明为全局,就像mImages一样, 然后更改imageview的图像,如下所示:
imageView.setBackgroundResource(your.image.resource);
我尝试过这个方法,但由于一些奇怪的原因,当我尝试全局声明ImageView时,会出现空指针异常。也许你能帮我更新我的答案,当然,希望我们能尽快找到答案。发布你的堆栈跟踪和更新的代码,我想看看你在哪里以及如何声明它。好的,Iv'e设法解决了NPE问题,但现在我有另一个问题,与这个问题无关,无论如何,谢谢。