如何从Glide onResourceReady返回

问题描述 投票:0回答:1

我正在尝试在Glide s[0]之后返回字符串onResourceReady,但是return语句在onResourceReady方法之前执行,所以现在我想从Glide onResourceReady返回一个字符串,但它不起作用。

如何使onResourceReady返回字符串?

请帮助我。

private String storeToLocalDisk(String urlS, final int id) {

    final String[] s = new String[1];

    Glide.with(getContext()).asBitmap().load(urlS).into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
            s[0] = saveToInternalStorage(resource,id);
            return s[0]; // not working
        }
    });
   // return s[0];
}
java android android-glide
1个回答
0
投票
return s[0];将不会执行,因为将执行第一个return s[0];,然后您将从Glide中获取数据。

我建议像这样使用LiveData

//Create livedata variable MutableLiveData<String> liveData; //then initialize this variable in oncreate or where you want just like this liveData= new MutableLiveData<>(); //then set value to LiveData just like this liveData.setValue("set you value"); //then Create observer for livedata. whenever data change in Livedata onChanged method will call Observer<String> observer= new Observer<String>() { @Override public void onChanged(@Nullable String s) { Log.e("dataChange",s); } };

像这样将observer设置为livedata

liveData.observe(this,observer):

现在像这样现在最后setvaluelivedata

liveData.setValue("set you value");

我几乎有同样的问题,这件事对我有用。 
© www.soinside.com 2019 - 2024. All rights reserved.