我如何将 kotlin 代码转换为 java [Android]
How do i convert kotlin code into java [Android]
这是我试图转换成 java 的代码,但我不明白它,实际上我得到这个代码作为答案,但 he/she 在 kotlin
Glide.with(context)
.load(url)
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
//TODO: something on exception
}
override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
Log.d(TAG, "OnResourceReady")
dummyShimmerView.visibility = View.GONE
postImageView.visibility = View.VISIBLE
return false
}
})
.into(imgView)
我认为您对 RequestListener
部分感到困惑。 Kotlin 使用 object
符号来实现接口。所以你的代码将大致翻译成这样
Glide.with(context).load(...)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
//TODO
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
// Todo
return false;
}
})
}).into(imgView);
您可以使用:
Glide
.with(context)
.load("url")
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable @org.jetbrains.annotations.Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
dummyShimmerView.setVisibility(View.GONE);
postImageView.setVisibility(View.VISIBLE);
return false;
}
})
.into(imageView);
这是我试图转换成 java 的代码,但我不明白它,实际上我得到这个代码作为答案,但 he/she 在 kotlin
Glide.with(context)
.load(url)
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
//TODO: something on exception
}
override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
Log.d(TAG, "OnResourceReady")
dummyShimmerView.visibility = View.GONE
postImageView.visibility = View.VISIBLE
return false
}
})
.into(imgView)
我认为您对 RequestListener
部分感到困惑。 Kotlin 使用 object
符号来实现接口。所以你的代码将大致翻译成这样
Glide.with(context).load(...)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
//TODO
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
// Todo
return false;
}
})
}).into(imgView);
您可以使用:
Glide
.with(context)
.load("url")
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable @org.jetbrains.annotations.Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
dummyShimmerView.setVisibility(View.GONE);
postImageView.setVisibility(View.VISIBLE);
return false;
}
})
.into(imageView);