作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 Glide onResourceReady
之后返回字符串 s[0]
,但 return 语句在 onResourceReady
方法之前执行,所以现在我想从 Glide onResourceReady
返回一个字符串,但它不起作用。
如何让onResourceReady
返回String?
请帮助我。
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];
}
最佳答案
这个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):
现在终于setvalue
的livedata
就像这样
liveData.setValue("set you value");
我遇到了几乎同样的问题,这个东西对我有用。
关于java - 如何从 Glide onResourceReady 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076393/
我试图在 Glide onResourceReady 之后返回字符串 s[0],但 return 语句在 onResourceReady 方法之前执行,所以现在我想从 Glide onResource
那里!我正在使用 glide 在我的应用程序中加载图像。以前我使用 Picasso 并且它工作但是在迁移到 Glide (v4.7.1) 之后我无法使用监听器来获取资源的状态。我在下面附上了代码,请帮
我是一名优秀的程序员,十分优秀!