pageradapter
クラス外で画像を更新しようとしていますが、機能しません。私は他の方法でそれを成し遂げましたが、それをするのは効率的ではありません。
int pos = mPager.getCurrentItem();
mAdapter.notifyDataSetChanged();
mPager.setAdapter(mAdapter);
mPager.setCurrentItem(pos);
その効果を発揮するまでにはかなりの時間がかかりますが、他の方法をいただければ幸いです。20枚以上の画像があるので、ビューを削除して元に戻すことはできません。から画像を更新しようとしていoptions menu
ます。回答や提案を楽しみにしています。ありがとう!
これが私のコードです
public class pageAdapter extends PagerAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return Global.imageList.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
// TODO Auto-generated method stub
return view.equals(object);
}
@Override
public Object instantiateItem(View container, final int position) {
// TODO Auto-generated method stub
View v = getLayoutInflater().inflate(R.layout.pager_item, null);
ImageView ivBackground = (ImageView) v
.findViewById(R.id.pager_image);
final ImageView ivFavorite = (ImageView) v
.findViewById(R.id.fav_image);
ivFavorite.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (!helper.isExist(Global.imageList[position])) {
int i = helper.insertFavourites(Global.imageList[position]);
if (i != -1) {
ivFavorite.setImageResource(R.drawable.fav_selected);
}
} else {
if (helper.removeFavorite(Global.imageList[position])) {
ivFavorite .setImageResource(R.drawable.fav_unselected);
}
}
}
});
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
Global.imageList[position]);
ivBackground.setImageBitmap(bitmap);
((ViewPager) container).addView(v, 0);
return v;
}
@Override
public void destroyItem(View container, int position, Object object) {
// TODO Auto-generated method stub
((ViewPager) container).removeView((View) object);
}
}