首先,我谷歌了一下,没有找到答案。另外,我在这里发现了一些问题,但它们的日期是 2016 年和 2017 年。现在我们有 2019 年。
我已经习惯了 Android Studio 中的 Java。当我覆盖方法时,IDE 会将它们按顺序排列 - 它们如何放置在父类或实现的接口中。
例如,当我开发 Repository 模式时:
我创建了一个界面。
创建实现此接口的类
当我在接口中添加函数,然后在我的类中覆盖(ctrl+o 或 alt+Enter)它们在我的类中:在 Java 中,它们放置在与它们在接口中定义的位置相同的位置,在 Kotlin 中 - 放置在班上的佼佼者(这真的很糟糕!)
此外,代码不会自动重新格式化,例如:全局变量放在顶部,然后是构造函数等。
所以我问。
只有我?我试过删除所有 Android Studio 设置、重新安装等。它什么也没做。此外,谷歌搜索没有得到任何结果。
这一切有什么解决办法吗?因为我真的很喜欢 kotlin,但是这种不便只是很烦人。
我正在使用 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