【问题标题】:How do i convert kotlin code into java [Android]我如何将 kotlin 代码转换为 java [Android]
【发布时间】:2021-08-22 05:51:44
【问题描述】:

这是我试图转换成 java 但我不明白的代码,实际上我得到了这个代码作为答案,但他/她在 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)

【问题讨论】:

    标签: java android kotlin code-conversion


    【解决方案1】:

    我认为您对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);
    

    【讨论】:

    • 我已经更新了答案。甚至@GabrieleMariotti 也使用了更正确对齐的代码。你可以使用任何一个。它会起作用的。
    • 有没有一种方法可以让我用 java 获得相同的功能,实际上我为您提供了答案链接,然后我想我想做什么会更清楚stackoverflow.com/a/67816307/15537898
    • 是的,这适用于 Java,你只需要像 `dummyShimmerView.setVisibility(View.GONE);` 一样让视图接下来可见
    • 嘿兄弟一个小请求,我已经给出了答案的链接,你能解释一下吗,回答我问题的人只是发布了代码,但我不知道具体放在哪里该代码尤其是 XML 代码
    • 在您的 XML 布局中,他要求您为您的 Shimmer 布局提供一个单独的视图,该视图具有固定的高度和宽度,然后他的意思是只要您的图像通过滑行加载,您隐藏虚拟微光视图并显示您的正常图像查看@SagarRawal 这是大多数微光库的工作方式,它们有一个虚拟微光,它显示直到读取数据被加载,然后微光隐藏。
    【解决方案2】:

    你可以使用:

         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);
    

    【讨论】:

      猜你喜欢
      • 2019-11-19
      • 2018-06-24
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多