En mi aplicación, que tienen un Spinner se llena de una enumeración:¿Cómo acceder a las cadenas de recursos de ToString de enum en Android?
ArrayAdapter<myEnum> enumAdapter = new ArrayAdapter<Stroke> (parentActivity.getApplicationContext(), R.layout.simple_spinner_item, myEnum.values());
enumAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
enumSpinner.setAdapter(strokeAdapter);
Este utiliza un reemplazo del método de la enumeración toString()
para obtener un nombre descriptivo para los valores de enumeración para mostrar en el Spinner
. Actualmente, mi enumeración tiene cadenas codificadas para los nombres descriptivos, pero me gustaría moverlas al strings.xml
para apoyar la localización.
Sin embargo, toString no tiene acceso a Context
, por lo que no estoy seguro de cómo resolver los identificadores de recursos.
¿Hay alguna forma de obtener cadenas localizadas en el método toString() de una enumeración?
Una enumeración es sólo una abreviatura de una clase. Crea una clase singleton que hace el trabajo. El método toString() puede acceder a lo que quiera. – Simon
¿Por qué usar la cadena actual? La mayoría de 'View.setText()' por ejemplo también puede tomar un resourceID. De forma similar, los creadores de opciones pueden tomar matrices de ID de recursos en lugar de matrices de cadenas. – ccpizza