Ho fatto qualcosa di simile... ottenendo degli errori che non riuscivo a comprendere fino a che non ho fatto un debug passo passo.

In pratica, facendo l'override di getxxxColor come hai fatto tu, provocavo una NullPointerException quando questo metodo veniva invocato nel costruttore, durante la chiamata a "super"

Ho risolto inserendo un if(testo==null) etc...

Per il resto, non saprei...