Cambiar los conmutadores a declaraciones "if-else"

Recientemente me he interesado en la programación y quiero crear aplicaciones de Android para teléfonos o tabletas. He recorrido un largo camino en un par de semanas de saber casi nada acerca de java / xml. Estoy muy serio acerca de esto. Voy a encontrar la respuesta a esta pregunta de una forma u otra. De hecho, espero saberlo antes de que alguien responda a esto. He arreglado muchos problemas sin recurrir a preguntar a nadie, pero he estado atrapado en este tema demasiado tiempo. Pensé que daría una oportunidad.

Estoy usando un tutorial más antiguo para crear una aplicación de twitter de práctica (los tutoriales para estos parecen estar en todas partes, por lo que lo elegí). Estoy usando Eclipse para un editor.

El siguiente es un ejemplo de código del tutorial. Que se refiere a mi pregunta:

@Override public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.timeline); 

Al parecer, desde la introducción de ADT 14, ya no puede utilizar la frase (R.layout.timeline), que el mensaje de error se refiere a un "switch statement".

Ahora, en un post que encontré en otro sitio, alguien que tenía un problema similar muestra una captura de pantalla de la "solución rápida" en Eclipse usando ctrl + 1. En la captura de pantalla, la corrección que aparece dice "convertir a cambiar a la sentencia 'if-else'." Esta revisión no aparece en mi versión de Eclipse. Mis opciones de arreglos rápidos son "migrar Android código", "crear el campo 'línea de tiempo' en el tipo 'layout'", "crear constante 'cronograma' en el tipo 'layout' o renombrar en el archivo.

Si elijo "migrar código de Android", aparecerá una ventana informándome de la actualización de ADT 14 y cómo ya no se permiten las sentencias switch en los proyectos de biblioteca. Dice convertir la sentencia switch a una instrucción "if-else" presionando ctrl + 1 para la solución rápida, y luego elegir "cambiar a if-else" como lo hace en la captura de pantalla que encontré. Pero de nuevo, cuando hago esto, esa opción no aparece.

Prefiero saber qué necesita ser cambiado en el código de saber cómo hacer que el arreglo rápido correcto pop-up. Si no es demasiado problema, una explicación de por qué exactamente estos cambios son afectivos sería muy útil. Tengo muchos (MUCHOS) errores en mis archivos java en este momento, pero la mayoría de ellos se deben a este problema exacto en diferentes formas. Si pudiera ver sólo un ejemplo antes / después probablemente podría resolverlo desde allí sin una explicación. Pero después de horas de búsqueda, no puedo encontrar eso hasta ahora por google.

Muchas gracias de antemano….

Y para que conste, no veo ninguna clase de conmutador en ninguno de mis archivos java, si eso hace una diferencia para la respuesta …

Asegúrese de hacer clic en la palabra clave de switch y luego presione Ctrl + 1 .
Esto me confundió al principio también …

Si todavía no aparece, ¿qué versión de Eclipse está usando?

Si está utilizando un Mac, seleccione el switch palabras clave y haga clic en Mayús + Comando + 1 .
Esto mostrará un mensaje para cambiar el switch a if else condiciones.

He estado teniendo los mismos problemas. Para mí, estaba cambiando en view.getId (). Antes del modificador, declare int id = view.getId () ;. A continuación, cambie en id. A continuación, puede ctrl + 1 clic y el "Convertir Switch a Si / Else" debe aparecer.

Hicieron este cambio para disminuir la velocidad de construcción. Mis proyectos ahora se construyen en aproximadamente 1/10 del tiempo. Me alegro de haber actualizado el ADT.

Para mí, parece que no tienes un recurso de línea de tiempo .

Desglose

R se refiere a Recursos

El diseño se refiere a la colección de diseños en su aplicación

Y la línea de tiempo se refiere al recurso específico que está intentando aplicar setContentView () también.

Si mi corazonada es correcta, no tienes el recurso de línea de tiempo . Cree un nuevo archivo XML en su carpeta de diseño en eclipse y denomínelo "calendario". Esto debería resolver el problema.

Espero que tengas las cosas funcionando.

Estoy de acuerdo en que esto suena como un extraño error de Eclipse que no es lo que parece, y no lo que Quick Fix dice que es. Se sabe que Eclipse miente de vez en cuando. Limpiar su proyecto (como @Stephen Dubya dijo), cortar el código ofensivo, guardar el archivo, pegarlo de nuevo, y guardar de nuevo … estos son algunos de los trucos no obvios que a veces Eclipse se comportan.

En general, creo que sería bueno para que usted se familiarice más con algunos de los conceptos básicos de Java como switch ; Creo que hará que su aprendizaje de Android mucho más fácil. Aunque las herramientas y la documentación siguen mejorando, Android sigue siendo joven y no siempre es fácil de aprender usando tutoriales, especialmente cuando no está acostumbrado a escribir código en absoluto o utilizando IDE complicados como Eclipse.

Pero yo divago. Es sólo en los proyectos de la biblioteca de Android, no en los proyectos regulares, que Android no trata los recursos como constantes (variables final ), ya que ADT 14. Eso significa que en proyectos de biblioteca, no se puede usar R.layout.timeline o similar Variables de recursos en las instrucciones de switch . Sólo puede switch números enteros o valores de enumeración.

Usar if-else todo el tiempo puede ser su mejor apuesta, de todos modos. Puede, especialmente para principiantes, conducir a errores lógicos en su código, y cualquier cosa que pueda escribir usando el switch puede ser reescrito usando bloques if-else . Personalmente, he dejado de usar el switch en Android y otro código Java por completo.

Es necesario colocar la maldición justo antes de la s en el interruptor de palabra, y la prensa cmd 1. Si las declaraciones de cambio tienen cláusulas de retención, la opción de convertir no estará disponible.

De alguna manera he sobrecargado este error. He eliminado mi proyecto del espacio de trabajo. Reverted es archivos .project a los antiguos comprometidos en SVN. A continuación, en Eclipse desinstalar ADT e instalarlo de nuevo. Luego importa mi proyecto. -> Las bibliotecas se agregan la vieja manera y como resultado todos los campos en R.java ahora son finales. Espero que esto ayude.

  • ¿Usando cuerdas en una caja de conmutación para un menú?
  • Actividad del conmutador androide de un hilo no ui
  • ¿O declaración en el interruptor / caso?
  • Cómo agregar un escucha a un botón de conmutación?
  • ¿Usando la cadena del recurso XML en el interruptor?
  • Cambiar las actividades de un lado a otro en Android
  • Cambiar del diseño main.xml a otro diseño
  • Cambiar instrucción con cadena como argumento en Android
  • Obtener la intensidad de la señal de WIFI y datos móviles
  • Interruptor multinivel Android
  • Android: cambia a la actividad sin reiniciarla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.