我在一个类中有一个变量,它从viewHolder A得到了意图额外的值,就像这样
var artistName = intent.getStringExtra(viewHolderA.ARTIST_NAME)
现在假设我有viewHolder B,我想将值传递给artistName
var artistName = intent.getStringExtra(viewHolderB.ARTIST_NAME)
有没有办法检查来自viewHolderA的intent.getStringExtra是否为空,然后是来自viewholder B的getStringExtra?
答案 0 :(得分:3)
如果您没有将字符串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)
}
<小时/>
如果我们不确定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
与Java中的condition ? A : B
相同。 (此处,方法isNullOrEmpty()
在null
或""
时均为真。)
答案 1 :(得分:0)
我想我找到了答案。如果我错了,请纠正我。
我应该使用intent.hasExtra()
来检查viewHolderA
或viewHolderB
是否有值,然后从viewHolder
有值的值中获取值。