soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
如果不为null或为空,则将值作为参数传递

我有从文本输入中检索到的文本值。我想让用户不要填写这些输入。但是,如果用户尚未填写一个或多个值,我想显示这些输入的默认值。

我有一个数据类,看起来像这样:

@Parcelizedata class Profile(
val firstName: String = "",
val lastName: String = "",
val description: String = "",
val imageUri: String = "") : Parcelable

单击时,我从ViewModel类中调用一个方法,并将当前输入值传递给该方法,然后使用Repository类将其持久化:

viewModel.createProfile(
 etFirstName.text.toString(),
 etLastName.text.toString(),
 etProfileDescription.text.toString(),
 profileImageUri.toString())// The createProfile function itselffun createProfile(
firstName: String = "John",
lastName: String = "Doe",
description: String = "Default Description",
imageUri: String = "Default Uri") {
val profile = Profile(firstName, lastName, description, imageUri)
// Persist data}

在另一个片段中,我使用以下持久化数据来设置一些UI数据,如下所示:

private fun observeProfile() {
viewModel.getProfile()

viewModel.profile.observe(viewLifecycleOwner, Observer {
val profile = it
tvName.text = getString(R.string.profile_name, profile.firstName, profile.lastName)
tvDescription.text = profile.description
ivProfileImage.setImageURI(Uri.parse(profile.imageUri))
})}

因此,目前createProfile需要4个参数。我可以传递较少的值,因为我有可选参数,但是如何createProfile根据值是非null还是空值有条件地将参数传递给我当然可以为每个值创建检查,但是最好的方法是什么?

我认为你需要一个定制的setter每个字段,这样,你仍然可以通过和公正处理什么被通过,虽然我不知道这是可能的数据类,我不认为它是,除了检查每个值,我也没有想到更好的解决方案,这可能是多余的,但最简单的解决方案 –  a_local_nobody


2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示