بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تازه سازی GridView - حل شد.
سلام
اگه سمپل UIL رو دیده باشین، کد GridView به شکل زیر هست. در سمپل نیازی به تازه سازی گرید ویو نداشته و وقتی این سورس رو برای یه گالری با چند آلبوم استفاده میکنی، فقط تصاویری که از لیست اولی گرفته رو نشون میده، و تصاویر جدید نشون داده نمیشن. مگه اینکه کلا برنامه رو ببندی و دوباره باز کنی. لطفا یه راهنمایی بکنید که چطور میشه این گرید ویو رو رفرش کرد.
سپاس فراوان
public class ImageGridFragment extends AbsListViewBaseFragment {
public static final int INDEX = 1;
String[] imageUrls = Constants.IMAGES;
ViewHolder holder;
DisplayImageOptions options;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fr_image_grid, container, false);
listView = (GridView) rootView.findViewById(R.id.grid);
final ImageAdapter imageAD = new ImageAdapter();
((GridView) listView).setAdapter(imageAD);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//...
});
return rootView;
}
@TargetApi(Build.VERSION_CODES.FROYO)
@SuppressLint("NewApi")
protected Uri getRealPathFromURI(ImageView imageView) {
// Extract Bitmap from ImageView drawable
Drawable drawable = imageView.getDrawable();
Bitmap bmp = null;
if (drawable instanceof BitmapDrawable){
bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
} else {
return null;
}
// Store image to default external storage directory
Uri bmpUri = null;
try {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
file.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
bmpUri = Uri.fromFile(file);
} catch (IOException e) {
e.printStackTrace();
}
return bmpUri;
}
public class ImageAdapter extends BaseAdapter {
private LayoutInflater inflater;
ImageAdapter() {
inflater = LayoutInflater.from(getActivity());
}
@Override
public int getCount() {
return imageUrls.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = inflater.inflate(R.layout.item_grid_image, parent, false);
holder = new ViewHolder();
assert view != null;
holder.imageView = (ImageView) view.findViewById(R.id.image);
holder.progressBar = (ProgressBar) view.findViewById(R.id.progress);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
ImageLoader.getInstance()
.displayImage(imageUrls[position], holder.imageView, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
holder.progressBar.setProgress(0);
holder.progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
holder.progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
holder.progressBar.setVisibility(View.GONE);
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
holder.progressBar.setProgress(Math.round(100.0f * current / total));
}
});
return view;
}
}
static class ViewHolder {
ImageView imageView;
ProgressBar progressBar;
}
}
+1
0
دوست عزیز داخل سایت های خارمی جندین روش توضیح دادن ولی من خودم زمانی که نیاز به بروزرسانی داشتم تمام کدهای adapter رو دوباره گزاشتم..میدونم روش درستی نیس ولی منو به هدفم رسوند (11 سال پیش)
0
0
من stackoverflow رو زیر و رو کردم! بازم میگردم، فقط راهنمایی یا سرنخی اگه میتونین بهم بدین ممنون میشم. (11 سال پیش)
+1
0
داداش نگاه این لینک ها بکن لینک http://stackoverflow.com/questions/6469449/refresh-grid-view-dyanmically-in-android لینک (11 سال پیش)
0
0
مشکل از کلاس Constants بود. سپاس (11 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .