Evaluación de R.id.home
Estaba siguiendo este tutorial aquí – http://developer.android.com/training/implementing-navigation/ancestral.html – para implementar la navegación ascendente. Es igual al usuario presionando el botón Atrás en el teléfono, pero el método onBackPressed () no se dispara cuando se presiona el botón 'Arriba'. En el tutorial muestran que atrapar R.id.home en el método onOptionsItemSelected (). Esta página web – http://developer.android.com/reference/android/R.id.html – muestra que el valor de R.id.home debe ser igual a 16908332, pero no en mi aplicación. En el código abajo si uso R.id.home falla. Si código duro en 16908332 funciona. Para mí R.id.home se evalúa a 21312330724. De acuerdo con la página, todos los valores R.id comienzan 1690. Odio la codificación en un valor para un valor incorporado, pero no estoy seguro de qué más hacer. ¿Podría esto causar problemas en el camino? ¿Estoy haciendo algo mal? ¿Es esto un error?
Greg
- definiendo constantes como #define que se pueden usar en sentencias switch en java
- Constantes del archivo Android R no se actualizan automáticamente
- ¿Dónde almacenar constantes globales en una aplicación de Android?
- Cuándo utilizar Enum / Int Constantes
- Constantes para tipos de recursos en Android
@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } //noinspection SimplifiableIfStatement if (id == R.id.home) {//16908332 Intent upIntent = NavUtils.getParentActivityIntent(this); upIntent.putExtra(CAT_ID, CatID); upIntent.putExtra(USER_ID, UserID); upIntent.putExtra(LIST_ID, ListID); setResult(RESULT_OK, upIntent); NavUtils.navigateUpTo(this, upIntent); return true; } return super.onOptionsItemSelected(item); }
- Compartiendo constantes en varias clases (dragador de minas androide)
- Comprobación de la versión de Android e introducción de constantes estáticas finales
- ¿Es posible en android definir constantes en XML que varían con la configuración
- Android: asignar un valor constante a un elemento xml
- ¿Cuál es la mejor manera de definir TAG constante en Kotlin?
Necesitas compararlo con el de Android:
if (id == android.R.id.home){ ... }