Mam zdefiniowane pewne zasoby, np .:Uzyskiwanie dostępu do zasobów z ArrayAdapter w Androidzie
<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>
... i mam ArrayAdapter Wyświetlanie elementów do TextView. Próbuję uzyskać dostęp do wartości z kodem jak:
keyPosition = getResources().getInteger(R.integer.KEY_POSITION_ARM);
moduleDataView.setTextColor(getResources().getColor(R.color.darkgreen));
... ale pojawiają się błędy takie jak „The getResources() metoda jest zdefiniowana dla typu ContinuityAdapter”. (ContinuityAdapter rozszerza ArrayAdapter)
Czy jest to dobry sposób obejścia tego?
Dzięki
To jest przykład:
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;
}
Pierwszy przypadek daje błąd, a drugi nie, ale nie używać wartości z pliku XML albo. Chociaż, jak mówisz, mogę po prostu użyć wartości R ..., o ile używam jej w ten sposób wszędzie. Po prostu nie jestem pewien, czy jest to uważane za "najlepszą praktykę". Dzięki
Dzięki. Próbowałem go i myślałem, że to nie działa, ale teraz zdaję sobie sprawę, że otrzymuję kolejny błąd: "switch (foo) { case activity.getResources(). GetInteger (R.integer.KEY_POSITION_ARM): 'The Oświadczenie sprawy oczywiście wymaga stałego wyrażenia, nawet jeśli zasób jest stały. Czy utknąłem przy użyciu instrukcji if? – ARQuattr
Potrzebuję zobaczyć więcej kodu. Zasadniczo starałem się unikać przypadków przełączania lub bezpośrednio używam identyfikatora zasobu (to jest sprawy R.id.xyz). – user802421
Edytowałem pytanie, aby dołączyć lepszy przykład kodu. Dzięki – ARQuattr