Foros del Web » Programando para Internet » Android »

No registra id de menú en clase R

Estas en el tema de No registra id de menú en clase R en el foro de Android en Foros del Web. Buenas, estoy implementando un menú y no hay manera de que se registre su id en la clase "R", lo cual no me permite utilizarlo ...
  #1 (permalink)  
Antiguo 04/11/2011, 11:17
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 8
No registra id de menú en clase R

Buenas, estoy implementando un menú y no hay manera de que se registre su id en la clase "R", lo cual no me permite utilizarlo en un MenuInflater. Agradezco cualquier aporte. Un saludo.

Res/menu/
Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <item
  4.        android:id="@+id/menuAcercaDe"
  5.        android:icon="@drawable/ic_menu_about">
  6.     </item>
  7.     <item
  8.        android:id="@+id/menuQuit"
  9.        android:icon="@drawable/ic_menu_quit">        
  10.     </item>
  11. </menu>

Código Java:
Código Java:
Ver original
  1. package es.pruebas.menu;
  2.  
  3. import android.app.Activity;
  4. import android.view.Menu;
  5. import android.view.MenuItem;
  6. import android.widget.Toast;
  7.  
  8. public class MenuInflater extends Activity {
  9.  
  10.     @Override
  11.     public boolean onCreateOptionsMenu(Menu menu) {
  12.         // TODO Auto-generated method stub
  13.         android.view.MenuInflater inflater = getMenuInflater();
  14.         inflater.inflate(R.menu.menuprincipal, menu);
  15.         return super.onCreateOptionsMenu(menu);
  16.     }
  17.  
  18.     @Override
  19.     public boolean onOptionsItemSelected(MenuItem item) {
  20.         // TODO Auto-generated method stub
  21.         int id = item.getItemId();
  22.         if (id == R.id.menuAcercaDe) {
  23.             String aboutTxt = "Pruebas Menu";
  24.             Toast.makeText(getApplicationContext(), aboutTxt, Toast.LENGTH_LONG).show();
  25.             return true;
  26.         } else if (id == R.id.menuQuit) {
  27.             finish();
  28.             return true;
  29.         } else {
  30.             return false;
  31.         }
  32.     }
  33. }
  #2 (permalink)  
Antiguo 04/11/2011, 12:03
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: No registra id de menú en clase R

Te marca error en esta parte verdad "inflater.inflate(R.menu.menuprincipal, menu);"?
Si es asi el problema esta en crear el archivo con extensión xml. Yo tenia el mismo problema, das click derecho para crear la carpeta luego en la carpeta vuelves a dar click derecho pero en este caso le das a la opcion de Others... ahi adentro salen varias opciones, ve a la opcion de "Android", adentro de esa carpeta sale la opcion de crear archivos XML para android... espero me haya explicado si no despues te subo imagenes
  #3 (permalink)  
Antiguo 05/11/2011, 14:32
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: No registra id de menú en clase R

Buenas, no, el problema está en la expresión "if":

"if (id == R.id.menuAcercaDe)"

Es como si no encontrara el id "menuAcercaDe", como si no existiese....

Gracias, un saludo.
  #4 (permalink)  
Antiguo 05/11/2011, 15:49
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: No registra id de menú en clase R

Normalmente yo utilizo esto "switch(item.getItemId()){
case (R.id.opt1): }" no se por que utilizas el "if" pero deberia ser lo mismo no debería cambiar nada... esta muy raro, que error te tira, podrias ponerlo para ver como ayudarte
  #5 (permalink)  
Antiguo 06/11/2011, 11:51
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: No registra id de menú en clase R

Vale, ya di con el error, de todas formas te comento. Con la nueva API la 14 (ice crema sandwich) no se pueden utilizar switch para interactuar con views, te obligan a utilizar if - else if.

Y el problema, era que no había añadido los iconos a los que hago referencia en menu.xml. Por lo tanto, no se añaden sus correspondientes id a la clase R.

Gracias por la ayuda! un saludo!
  #6 (permalink)  
Antiguo 06/11/2011, 12:38
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: No registra id de menú en clase R

jajaja podrias haber utilizado los de default que te da android, y gracias por el dato del nuevo API aun no lo utilizo me da flojera soy tradicionalista jejeje suerte con tu aplicacion

Etiquetas: clase, todo, apps
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:09.