我在一个类中有一个变量,它像这样从 viewHolder A 获取额外的 Intent 值
var artistName = intent.getStringExtra(viewHolderA.ARTIST_NAME)
现在假设我有 viewHolder B,我也想将一个值传递给 artistName
var artistName = intent.getStringExtra(viewHolderB.ARTIST_NAME)
有没有办法检查来自 viewHolderA 的 intent.getStringExtra 是否为空然后来自 viewholder B 的 getStringExtra?
最佳答案
如果您没有将字符串 extra viewHolderA.ARTIST_NAME
设置为 ""
,则 intent.getStringExtra(viewHolderA.ARTIST_NAME)
将返回 null
或一些有意义的值。
在那种情况下,
var artistName = intent.getStringExtra(viewHolderA.ARTIST_NAME) ?: intent.getStringExtra(viewHolderB.ARTIST_NAME)
这等于
var artistName: String? = null
if (intent.getStringExtra(viewHolderA.ARTIST_NAME) == null) {
artistName = intent.getStringExtra(viewHolderB.ARTIST_NAME)
} else {
artistName = intent.getStringExtra(viewHolderA.ARTIST_NAME)
}
使用 Elvis operator .
如果我们不确定
viewHolderA.ARTIST_NAME
是否可以是""
,
你可以使用
var artistName = if (intent.getStringExtra(viewHolderA.ARTIST_NAME).isNullOrEmpty()) {
intent.getStringExtra(viewHolderB.ARTIST_NAME)
} else {
intent.getStringExtra(viewHolderA.ARTIST_NAME)
}
因为 Kotlin 中的 if (condition) A else B
与 condition 相同? A : B
在 Java 中。 (这里,当 null
或 ""
时,方法 isNullOrEmpty()
为真。)
关于android - 如何使用相同的变量从 2 个不同的类接收额外的 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48866323/