我很想知道如何使用ternator运算符将此代码缩小为1行,其想法是在RecyclerView的1或0时更改图像的可绘制性,我已经做到了,但是我认为不是那样可以有多个其他方法来执行此操作,相反,我知道可以使用三元运算符仅在一行中完成它。
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 );
答案 0 :(得分:3)
尝试一下:
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)转换为(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);
答案 2 :(得分:1)
这样的事情。
cookies.signed[:cookie_name] = {
value: payload,
domain: ['.socket.example.com', '.example.com']
# Some people have to specify tld_length, but I was fine without it
}
答案 3 :(得分:0)
尝试一下:
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);