ID de elemento de menú en un proyecto de biblioteca de Android?
La aplicación de Android utiliza un proyecto de biblioteca para contener la mayor parte del código de la aplicación, ya que hay dos versiones de la aplicación creadas a partir de la fuente principal. Desde una actualización de IntelliJ IDEA (a v11) estoy recibiendo esta advertencia en cada una de las declaraciones de caso a continuación:
Resource IDs cannot be used in a switch statement in Android library modules
Aquí está el código:
- Android Studio - ¿Cómo deshabilitar la superposición de vista previa de código de desplazamiento?
- Finalización del código en Android Studio
- ¿Puedo activar el registro detallado de DEX?
- ¿Cuál es la manera más fácil de forzar a Idea a generar el archivo R.Java?
- IntelliJ Idea Android Proyectos incluyendo archivos no-watned en apk
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_one: // Build error here // Do stuff return true; case R.id.menu_item_two: // Build error here // Do stuff return true; default: return super.onOptionsItemSelected(item); } }
Aceptar, así que si no puedo hacer referencia a ellos a través de su ID, ¿cómo hacer referencia a ellos?
- Compilación con el origen de otro módulo en Android Studio
- No se puede depurar la aplicación android en Intellij: "Advertencia: la información de depuración puede no estar disponible."
- IntelliJ IDEA piensa que parte de mi proyecto es la subversión en lugar de git, ¿cómo arreglar esto?
- ¿Qué es dx.jar en los SDK de Android?
- Las bibliotecas nativas (archivos .so) no se agregan a un proyecto android
- ¿Puedo hacer que IntelliJ depure mis aplicaciones Android a través del dispositivo en lugar del emulador?
- Biblioteca de servicios de Google play en Intellij 12
- No puedo IntelliJ reconocer mi SDK de Android
Sustituya el switch
por una construcción if/else if
.
int id = item.getItemId(); if(id == R.id.menu_item_one) { // ... } else if(id == R.id.menu_item_two) { // ... }
Esto es necesario desde ADT 14 porque el modificador final fue removido de id en la clase R.
Vea campos no constantes en las etiquetas de caso