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:

 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?

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

  • ¿Cómo se puede convertir archivos de Java a archivos de Kotlin?
  • El paquete com.google.android.maps no existe (IntelliJ)
  • Cómo navegar / ver / editar las fuentes de la plataforma android (AOSP) utilizando Intellij IDE (Android Studio preferiblemente)?
  • Cómo configurar admob en IntelliJ Idea?
  • El contenido no está permitido en prolog
  • Cómo obtener código fuente para android.jar
  • Cómo inhabilitar / suprimir las advertencias IDEA "Problemas de procesamiento"
  • ¿Es mejor usar Android Studio o Intellij Idea con plugins?
  • ¿Cómo evito que IntelliJ copie recursos en el directorio de salida del compilador del proyecto?
  • Duplicar archivos en la vista de proyecto de Android Studio
  • Estructura del proyecto de Android Studio (vs Estructura del proyecto de Eclipse)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.