Advertencia de Android Studio 1.1 con la sentencia switch case
Tengo una rama que reemplaza día del sistema día de valor entero de la semana al valor legible humano de la cadena.
Cuando uso la sentencia if-else como la siguiente, Android Studio 1.1 no avisa nada.
- Obtener el avatar de un usuario VK SDK
- API21 nuevo DatePicker ShowWeekNumber Crash
- Getdate de datepicker android
- SwitchPreference y CheckBoxPreference en el código
- android Espere entre actualizaciones de GridView
int intDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); String curStrDayOfWeek = ""; if (intDayOfWeek == 1) { curStrDayOfWeek = getResources().getString(R.string.sunday); } else if(intDayOfWeek == 2) { curStrDayOfWeek = getResources().getString(R.string.monday); } else if(intDayOfWeek == 3) { curStrDayOfWeek = getResources().getString(R.string.tuesday); } [SNIP] globals = (Globals) this.getApplication(); try { [SNIP] globals.hdsr_data.put("currentDayOfWeek", curStrDayOfWeek); [SNIP] catch (Exception e) { System.out.println("Error:" + e); } [SNIP]
Pero si intento usar la sentencia switch-case como la siguiente, advierte el valor getResources (). GetString (R.string.sunday) asignado a curStrDayOfWeek nunca se utiliza. Entonces recibí 6 advertencias ya que el valor tiene 7 sucursales.
int intDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); switch (intDayOfWeek) { case 1 : curStrDayOfWeek = getResources().getString(R.string.sunday); case 2 : curStrDayOfWeek = getResources().getString(R.string.monday); case 3 : curStrDayOfWeek = getResources().getString(R.string.tuesday); [SNIP] }
Me gustaría codificar sin previo aviso (excepto error tipográfico). ¿Cómo puedo utilizar la sentencia switch-case sin advertencia?
- Subida de imagen amazon s3 android SDK 2.0
- FQL Query para obtener cumpleaños de amigos de Facebook en los próximos 30 días con Android
- ActionBar con el icono y el texto en modo retrato
- El emulador de Android Studio no funciona
- En Android, ¿cómo puedo encontrar el llamador de un método de manera eficiente
- Cómo girar marcador (bus) de acuerdo a la dirección?
- Cómo probar InputMethodService
- Ubicación personalizada del almacén de datos en una máquina local con App Engine
Pero si intento usar la sentencia switch-case como la siguiente, advierte el valor
getResources().getString(R.string.sunday)
asignado acurStrDayOfWeek
nunca se utiliza.
Y es absolutamente correcto – porque de inmediato se caen a través de la siguiente sucursal. Necesita una declaración de break
:
switch (intDayOfWeek) { case 1: curStrDayOfWeek = getResources().getString(R.string.sunday); break; case 2: curStrDayOfWeek = getResources().getString(R.string.monday); break; case 3: curStrDayOfWeek = getResources().getString(R.string.tuesday); break; ... }
Personalmente, probablemente sólo construiría una matriz:
private static final int[] DAY_NAME_RESOURCES = { 0, // not used R.string.sunday, R.string.monday, R.string.tuesday, ... };
A continuación, utilice:
curStrDayOfWeek = getResource().getString(DAY_NAME_RESOURCES[i]);
- Android Fragment onDestroy llamado dos veces durante un cambio de orientación
- AlarmManager no dispara a tiempo en Android Lollipop