Ho alcune risorse definite, ad es .:Ottenere l'accesso alle risorse da un ArrayAdapter in Android
<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>
... e ho un ArrayAdapter la visualizzazione di elementi a TextViews. Sto cercando di accedere ai valori con un codice simile:
keyPosition = getResources().getInteger(R.integer.KEY_POSITION_ARM);
moduleDataView.setTextColor(getResources().getColor(R.color.darkgreen));
... ma ricevo errori come "Il metodo getResources() non è definito per il tipo ContinuityAdapter". (ContinuityAdapter estende ArrayAdapter)
C'è un buon modo per aggirare questo?
Grazie
Questo è un esempio:
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;
}
Il primo caso restituire un errore, e il secondo non lo fa, ma non usa il valore dal file XML sia. Anche se come dici tu posso semplicemente usare il valore R ... finché lo uso ovunque in quel modo. Non sono sicuro che sia considerata una "buona pratica". Grazie
Grazie. L'ho provato e ho pensato che non funzionasse, ma ora mi rendo conto che stavo facendo un altro errore: 'switch (foo) { case activity.getResources(). GetInteger (R.integer.KEY_POSITION_ARM):' The la dichiarazione di un caso richiede ovviamente un'espressione costante, anche se la risorsa è costante. Sono bloccato usando le istruzioni if? – ARQuattr
Ho bisogno di vedere più codice. Generalmente ho cercato di evitare casi di switch o utilizzo direttamente l'ID risorsa (vale a dire il caso R.id.xyz). – user802421
Ho modificato la domanda per includere un esempio di codice migliore. Grazie – ARQuattr