簡體   English   中英

如何使用三元運算符縮小我的表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM