小编Ser*_*kyi的帖子

如何按顺序重新排列 Kotlin 代码?

首先,我谷歌了一下,没有找到答案。另外,我在这里发现了一些问题,但它们的日期是 2016 年和 2017 年。现在我们有 2019 年。

我已经习惯了 Android Studio 中的 Java。当我覆盖方法时,IDE 会将它们按顺序排列 - 它们如何放置在父类或实现的接口中。

例如,当我开发 Repository 模式时:

  • 我创建了一个界面。

  • 创建实现此接口的类

  • 当我在接口中添加函数,然后在我的类中覆盖(ctrl+o 或 alt+Enter)它们在我的类中:在 Java 中,它们放置在与它们在接口中定义的位置相同的位置,在 Kotlin 中 - 放置在班上的佼佼者(这真的很糟糕!)

此外,代码不会自动重新格式化,例如:全局变量放在顶部,然后是构造函数等。

所以我问。

只有我?我试过删除所有 Android Studio 设置、重新安装等。它什么也没做。此外,谷歌搜索没有得到任何结果。

这一切有什么解决办法吗?因为我真的很喜欢 kotlin,但是这种不便只是很烦人。

intellij-idea kotlin android-studio

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

从不同的 LiveData 源填充适配器

我正在使用 LiveData 并想了解它可以做什么。我想通过开关用来自不同来源的数据填充我的 RecyclerView(如果你愿意,可以使用过滤器)。

过滤适配器内的值不是一种选择。所以,我决定在我的视图模型中使用MediatorLiveData

道:

@Query("SELECT * FROM tasks WHERE completed = 0")
LiveData<List<Task>> getActiveTasksLiveData();

@Query("SELECT * FROM tasks")
LiveData<List<Task>> getAllTasksLiveData();

@Query("SELECT * FROM tasks WHERE completed = 1")
LiveData<List<Task>> getClosedTasksLiveData();
Run Code Online (Sandbox Code Playgroud)

回购:

    public LiveData<List<Task>> getActiveTasks() {
        return mTaskDao.getActiveTasksLiveData();
    }

    public LiveData<List<Task>> getAllTasks() {
        return mTaskDao.getAllTasksLiveData();
    }

    public LiveData<List<Task>> getClosedTasks() {
        return mTaskDao.getClosedTasksLiveData();
    }
Run Code Online (Sandbox Code Playgroud)

视图模型

public class MainViewModel extends AndroidViewModel {

    private final String TAG = "MainViewModel";

    private final AppDataRepository mData;

    private MediatorLiveData<List<Task>> mMediatorTasks;

    public MainViewModel(@NonNull Application application) …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview android-room android-livedata android-viewmodel

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