[英]How to shrink my expression with a ternary operator
我很想知道如何使用 ternator 运算符将这段代码缩小到 1 行,这个想法是在它的 1 或 0 时更改我的 RecyclerView 中图像的可绘制性,我已经这样做了,但我认为具有多个的性能并不高如果要这样做,我知道它可以用三元运算符在 1 行中完成。
if(json.hasTime(mArrayList.get(mPosition))==1){
mHolder.imageEvent.setImageResource(R.drawable.ic_event_black_24dp);
}else{
mHolder.imageEvent.setImageResource(R.drawable.ic_event_busy_black_24dp);
}
我想做这样的事情:
(if 1 or 0 ? value 1 : value2 );
尝试这个 :
mHolder.imageEvent.setImageResource(json.hasTime(mArrayList.get(mPosition))==1 ? R.drawable.ic_event_black_24dp : R.drawable.ic_event_busy_black_24dp);
您总是可以像这样将表达式从 (1) 转换为 (2),
//(1)
if(condition){
stmt1;
}else{
stmt2;
}
//(2)
somevariable = condition?stmt1:stmt2;
所以你的单行表达式可以写成如下,
mHolder.imageEvent.setImageResource(json.hasTime(mArrayList.get(mPosition))==1?R.drawable.ic_event_black_24dp:R.drawable.ic_event_busy_black_24dp);
像这样的东西。
mHolder.imageEvent.setImageResource(json.hasTime(mArrayList.get(mPosition))==1?
R.drawable.ic_event_black_24dp : R.drawable.ic_event_busy_black_24dp)
尝试这个:
json.tieneHora(mArrayList.get(mPosition))==1?mHolder.imageEvent.setImageResource(R.drawable.ic_event_black_24dp):mHolder.imageEvent.setImageResource(R.drawable.ic_event_busy_black_24dp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.