我正在努力让我的第一个协程函数工作!我有一个名为GetContacts的阻塞函数,它可以获取设备联系人。我想用这个查询的结果更新一个Livedata。这个查询本身可以很好地工作,但是我似乎不能让它在Coroutine中工作。
以下是我的代码
val contactsList: MutableLiveData<List<ContactModel>> = MutableLiveData()
fun getContactList(){
viewModelScope.launch() {
var contacts: Lis
我在学科特林的协同训练。
代码A来自于弧形
我发现关键字挂起是为Insert和Delete函数添加的。
为什么不需要查询函数getAlphabetizedWords()在房间添加挂起关键字在Kotlin?我认为有些查询函数需要花费很长的时间来操作,所以需要在Coroutines中运行。
码A
@Dao
interface WordDao {
// LiveData is a data holder class that can be observed within a given lifecycle.
// Always holds/caches latest version
在我的应用程序中,我希望将Room数据库应用到MVVM体系结构中,为此,我使用了LiveData和Couroutines。
我写下面的代码,我想检查数据,如果数据是空,然后显示空布局。
我写了下面的代码,但运行后应用程序显示错误和应用程序已崩溃!
Dao码:
@Dao
interface DataDao {
@Query("SELECT * FROM $my_table ORDER BY id DESC")
fun getAllData(): LiveData<MutableList<DataEntity>>
}
存储代码:
class
我跟随这个blog来使用Android架构组件和Firebase实时数据库。目前,我在博客中将对onChanged()的LiveData回调移动到另一个线程上。 这就是我所拥有的( Kotlin相当于博客中的Java代码): private val uid = Firebase.auth.currentUser!!.uid
private val USERS_REF: DatabaseReference = FirebaseDatabase.getInstance().getReference("/users/$uid")
private val liveData: Fire
当应用程序的gradle build.gradle.kts文件中没有启用Jetpack Compose标志时,我的LiveData观察器会根据片段中的代码为personsResult返回正确的数据类型kotlin.Result<List<Person>>: private fun observePersons() {
val observer: (kotlin.Result<List<Person>>) -> Unit = { personsResult ->
// Do something
我正在使用Kotlin和安卓架构组件(LiveData和房间)制作一个安卓应用程序。 我有一个显示用户的活动(该用户存储在DB中,并使用带有ViewModel的查询进行恢复)。 我必须拥有编辑或删除当前用户的选项。问题是,当我尝试删除用户时,应用程序崩溃,但当我再次打开它时,用户就消失了。 这是我的完整类代码: class DetallesPerfilActivity : AppCompatActivity() {
private var user_id : Int = -1
lateinit var usuarioViewModel: UsuarioViewModel
private l
我偶然发现了这样一个密码,并对此提出了一个问题。在ViewModel中,变量夜被声明并格式化如下:
private val nights = database.getAllNights()
val nightsString = Transformations.map(nights) { nights ->
formatNights(nights, application.resources)
}
getAllNights ()是Dao中的一个函数,如下所示:
@Query("SELECT * FROM daily_sleep_quality_table ORDER B
我有一个Android应用程序,它使用二维数据集,例如:
1 2 3
1 A B C
2 D E F
3 G H I
这些数据的A、B、C值可以来自以下两处之一:
Kotlin类中的硬编码映射( defaults).Optional覆盖sqliteDB.中的值)
用户可以随意自定义某些值,例如,重写的某些数据库条目可能如下所示:
x,y,value
2,2,X
3,1,Y
3,3,Z
它将更新合并后的数据如下:
1 2 3
1 A B Y
2 D X F
3 G H Z
我已经将重写数据添加到DB中,而且我有Kotlin类中的源数据,但我很难找到正确的方法来检索和合并这些数据,以便在计
学校的项目,我对Android的开发非常陌生。
问题
我在onClick保存人员片段中有一个带有侦听器的按钮,该按钮将个人数据保存到数据库中。所有操作都很好,但出于某种原因,使用第一次单击,它不会返回插入的行ID,但是它会在第二次单击开始时返回。
在进入下一个片段之前,我确实需要这个ID。
不确定这是否重要,但是每当我返回(重新加载)到这个保存人片段时,其行为总是相同的,即第一个单击始终无法捕获插入的行ID。
输入数据:
first name = John
last name = Smith
为了演示的目的,如果我尝试使用这个按钮3x插入person数据(返回的insert ID在日志中),我
来自体系结构组件的LiveData为接收方回调定义了一个具有可空值的观察者:
public interface Observer<T> {
/**
* Called when the data is changed.
* @param t The new data
*/
void onChanged(@Nullable T t);
}
为什么有一个显式的可空注释?
LiveData.observe()的医生还说:
如果LiveData已经拥有数据集,那么它将被传递给观察者。
例如,观察者等待非空更新或立即接收之前的非空值,在K
我正在使用livedata。我想在IO中运行一些任意代码,然后一旦完成,就在主线程中运行一些任意代码。 在JavaScript中,您可以通过将promises链接在一起来完成类似的任务。我知道Kotlin是不同的,但这至少是我所理解的一个框架。 我有一个函数,有时从Main调用,有时从IO调用,但它本身不需要特殊的IO功能。从class VM: ViewModel()内部 private val mState = MyState() // data class w/property `a`
val myLiveData<MyState> = MutableLiveData(mSt
我在我的android应用程序中遵循MVVM模式。下面是我将要讨论的文件:
PresentContestsFragment
PresentContestsViewModel
下面是我的视图代码模型:
private val _contests = MutableLiveData<List<ContestsShortInfoModel>>()
val contests:LiveData<List<ContestsShortInfoModel>>
get() = _contests
fun getContests() {
v