Adesso ho letto molto su questo argomento, e ho trovato esempi di come con le nuove istruzioni di commutazione di ADT devono essere fornite espressioni costanti, ma nulla è menzionato su @Inject.Attributo di annotazione che non accetta la mia variabile
Ecco un esempio del mio codice problematico.
import roboguice.inject.InjectView;
public abstract class YpListActivity extends GuiceListActivity
@InjectView(R.id.btnSearch)
Button btnSearch;
@InjectView(R.id.btnSpeech)
View btnSpeech;
@InjectView(R.id.etWhat)
EditText etWhat;
@InjectView(R.id.etWhere)
EditText etWhere;
@InjectView(R.id.tvIn)
TextView tvIn;
@InjectView(R.id.tvLocation)
TextView tvLocation;
@InjectView(R.id.tvCustom)
private ToggleButton tvCustom;
@InjectView(R.id.infoButton)
private ImageView iconButton;
Ogni volta che provo e utilizzare qualcosa come @injectView (R.id. *), eclissi genera l'errore:
"Il valore per l'annotazione degli attributi InjectView.value deve essere un'espressione costante."
ho anche provato a cambiare a questo:
private static final int btnsrch = new Integer(R.id.btnSearch);
@InjectView(btnsrch)
TableRow btnSearch ;
Come viene "btnsrch" Non un'espressione costante ??
Qualcuno ha qualche idea su come risolvere questo problema?
Cambia semantica Java, credo. –
Vedere [RoboGuice bug # 139] (http://code.google.com/p/roboguice/issues/detail?id=139) per ulteriori informazioni. [Gli ID dei progetti di libreria non sono definitivi a partire da ADT 14+] (http://tools.android.com/tips/non-constant-fields). – JohnnyLambada