小编Lor*_*nMK的帖子

在Kotlin中带参数的单例

我正在尝试将Android应用程序从Java转换为Kotlin.应用程序中有一些单身人士.我在没有构造函数参数的情况下为单例使用了伴随对象.还有另一个单例采用构造函数参数.

Java代码:

public class TasksLocalDataSource implements TasksDataSource {

    private static TasksLocalDataSource INSTANCE;

    private TasksDbHelper mDbHelper;

    // Prevent direct instantiation.
    private TasksLocalDataSource(@NonNull Context context) {
        checkNotNull(context);
        mDbHelper = new TasksDbHelper(context);
    }

    public static TasksLocalDataSource getInstance(@NonNull Context context) {
        if (INSTANCE == null) {
            INSTANCE = new TasksLocalDataSource(context);
        }
        return INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在kotlin的解决方案:

class TasksLocalDataSource private constructor(context: Context) : TasksDataSource {

    private val mDbHelper: TasksDbHelper

    init {
        checkNotNull(context)
        mDbHelper = TasksDbHelper(context)
    }

    companion object {
        lateinit var INSTANCE: TasksLocalDataSource
        private val …
Run Code Online (Sandbox Code Playgroud)

android kotlin

43
推荐指数
6
解决办法
3万
查看次数

删除所有Android语言的字符串

我有一个有几个翻译的应用程序,我想删除一些字符串.

我怎样才能重构和删除它们一次,例如在默认的strings.xml文件中,并自动将删除传播到其他翻译的其他strings.xml文件?谢谢

java xml eclipse android adt

13
推荐指数
3
解决办法
4303
查看次数

如何使用Kotlin enum与Retrofit?

如何使用枚举将JSON解析为模型?

这是我的枚举类:

enum class VehicleEnumEntity(val value: String) {
   CAR("vehicle"),
   MOTORCYCLE("motorcycle"),
   VAN("van"),
   MOTORHOME("motorhome"),
   OTHER("other")
}
Run Code Online (Sandbox Code Playgroud)

我需要解析type一个枚举

"vehicle":{"data":{"type":"vehicle","id":"F9dubDYLYN"}}

编辑

我已经尝试过标准方法,只需将我的枚举传递给POJO,它总是为空

enums android gson kotlin retrofit2

11
推荐指数
2
解决办法
5844
查看次数

Android - 多次运行IntentService

所以IntentService当我运行一次时,我运行正常.它需要一个图像处理它然后输出一系列RGB值.

但我现在需要它做的是多次运行批处理一系列图像.我的第一次尝试涉及在我的主类中调用停止服务,然后创建并运行IntentService的新实例.但是当我调用StopService时,这个崩溃了.

有没有正确的方法来做到这一点?

android android-intent android-intentservice

4
推荐指数
1
解决办法
4112
查看次数

使用 RxJava2 改造响应代码

因此,我想实现 API 响应的示例,如视频 droidcon NYC 2017 - Advanced Networking with RxJava + Retrofit中所示

这是我的代码:

演示者.java

compositeDisposable.add(RetrofitClient.createService(GetApi.class)
            .getResponseFromServer(token)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<ResponseFromServer>() {
                @Override
                public void accept(ResponseFromServer responseFromServer) throws Exception {
                    mView.setResponseObject(responseFromServer);
                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(Throwable throwable) throws Exception {
                    throwable.printStackTrace();
                    if (throwable instanceof HttpException) {
                        int responseCode = ((HttpException) throwable).code();
                    }

                }
            }));
Run Code Online (Sandbox Code Playgroud)

所以在这里,当我从服务器收到一些 4xx 错误响应时,我可以去Throwable获取响应代码,如果响应正常,我可以获取我的对象,一切都很酷。

然而,在上面的视频示例中,那家伙建议我用ResponseFromServer响应包装我的代码,如下所示: Single<Response<ResponseFromServer>> getResponseFromServer(@Header("X-Authorize") String token);这样我也可以访问响应代码,但在这种情况下,我的Throwable永远不会被调用,所以我只能在第一个接受中访问代码方法,但在视频中他发现了​​该Throwable部分的错误。所以,我无法弄清楚我做错了什么?也许我使用了错误的观察者?

android android-networking retrofit2 rx-java2

3
推荐指数
1
解决办法
2202
查看次数

无法将硬编码的字符串值传递给 Kotlin 中的 @BindingAdapter

将我的 Android 应用程序 Java 代码转换为 Kotlin,我使用数据绑定将自定义字体设置为 TextViews。我曾经从 XML 传递字体字符串,如下所示

app:customFont="@{'harmonia-semibold.ttf'}"

将@BindingAdapter 转换为 kotlin 后,上面的行不起作用,并且预期会抛出expr 或 lambda 表达式,出现 '''错误。用 getter 方法替换硬编码的字符串值非常有效。下面是我的绑定适配器,不知道为什么它不采用硬编码字符串

@JvmStatic 
@BindingAdapter("app:customFont")
fun setCustomFont(textView: TextView, font: String) {                       
      textView.typeface = Typeface.createFromAsset(textView.context.assets, font)
}
Run Code Online (Sandbox Code Playgroud)

谢谢

android kotlin android-databinding android-binding-adapter

1
推荐指数
1
解决办法
1156
查看次数