Iv'e leer mucho en este momento, y he encontrado ejemplos de cómo con sentencias switch el más reciente de ADT tienen que ser dada expresiones constantes, pero nada se menciona sobre todo @Inject.anotación no atribuye aceptar mi variable de
Aquí es un ejemplo de mi código problemático.
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;
Cada vez que intento y usar algo como @injectView (R.id. *), eclipse tiros el error:
"El valor de atributo para la anotación InjectView.value debe ser una expresión constante."
incluso intentado cambiar a esto:
private static final int btnsrch = new Integer(R.id.btnSearch);
@InjectView(btnsrch)
TableRow btnSearch ;
¿Cómo se "btnsrch" no es una expresión constante ??
¿Alguien tiene alguna idea de cómo solucionar este problema?
Cambiar la semántica de Java, supongo. –
Consulte [RoboGuice bug # 139] (http://code.google.com/p/roboguice/issues/detail?id=139) para obtener más información. [Los ID de proyectos de la biblioteca no son definitivos a partir de ADT 14+] (http://tools.android.com/tips/non-constant-fields). – JohnnyLambada