過去,我有someMethod();
這需要在一種顏色作爲參數,並使用該顏色爲view.setColor();
如何檢查,如果顏色是從Color.class或color.xml
參數正常工作時,我通過這樣的顏色:R.color.softgreen
但如果我通過Android的Color class
像這樣的顏色:Color.RED;
然後我得到android.content.res.Resources$NotFoundException Resource ID #0xffffffff
,因爲Color.RED
不起作用ContextCompat.getcolor();
我用於獲取顏色資源。
那麼如何檢查someMethod(int mainColor);
中的顏色是從color.xml
還是從Android顏色類如Color.WHITE
?
還是有更好的解決方案嗎?
public void someMethod(final View view, final int mainColor, final Integer returnColor) {
//if mainColor is from color.xml or color resource use this:
view.setColor(ContextCompat.getColor(context, mainColor));
//else just do this:
view.setColor(mainColor);
}
其實你的要求是什麼? –
@MurtazaKhursheedHussain我想知道如何檢查顏色來自哪裏。如果來自color.xml,那麼該方法將使用'ContextCompat.getColor();'來獲取顏色,如果不是,那麼它不應該使用'ContextCompat。getcolor()' – Muddz
通過總是顏色,留給呼叫者責任將資源ID轉換爲顏色 – Blackbelt