tengo algunos recursos definidos, por ejemplo .:Conseguir acceso a los recursos de un ArrayAdapter en Android
<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>
... y tengo una ArrayAdapter se muestran los elementos a TextViews. Estoy tratando de acceder a los valores con código como:
keyPosition = getResources().getInteger(R.integer.KEY_POSITION_ARM);
moduleDataView.setTextColor(getResources().getColor(R.color.darkgreen));
... pero me da errores como "The getResources método() está definido para el tipo ContinuityAdapter". (ContinuityAdapter extiende ArrayAdapter)
¿Hay una buena forma de evitar esto?
Gracias
Este es un ejemplo:
switch (currentModule.keyPosition) {
case activity.getResources().getInteger(R.integer.KEY_POSITION_ARM):
moduleDataView.keyPosition.setText("TEST");
moduleDataView.keyPosition.setTextColor(Color.GREEN);
break;
case R.integer.KEY_POSITION_ARM:
moduleDataView.keyPosition.setText("ARM");
moduleDataView.keyPosition.setTextColor(Color.RED);
break;
}
El primer caso genere un error, y el segundo no lo hace pero no lo utiliza el valor del archivo XML tampoco. Aunque como dices puedo usar el valor R ... siempre que lo use de esa manera en todos lados. Simplemente no estoy seguro si esto se considera 'la mejor práctica'. Gracias
Gracias. Lo había intentado y pensé que no funcionaba, pero ahora me doy cuenta de que estaba recibiendo otro error al hacer: 'switch (foo) { case activity.getResources(). GetInteger (R.integer.KEY_POSITION_ARM):' The caso declaración obviamente requiere una expresión constante, a pesar de que el recurso es constante. ¿Estoy atascado usando declaraciones if? – ARQuattr
Necesito ver más código. En general, traté de evitar los casos de cambio o utilizo el ID de recurso directamente (es decir, el caso R.id.xyz). – user802421
Edité la pregunta para incluir un mejor ejemplo de código. Gracias – ARQuattr