2012-01-20 8 views
6

Es mi primera pregunta, pero estoy tratando de preguntar correctamente.findViewById (int) devuelve nulo en un botón específico en Android 3.1 otras versiones está bien

Como el título dice solo en un botón y solo en Android 3.1 findViewById (int) devuelve null. Las pruebas en Android 2.2 funcionan y todos los demás botones se encuentran en ambas versiones de Android. Encuentra botones antes de esta línea específica y luego.

public void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
Button buttonInfo = (Button)findViewById(R.id.buttonInfo);//fine 
buttonInfo.setOnClickListener(this); 
... 
Button buttonCallOpScreen = (Button)findViewById(R.id.buttonCallOpScreen);//always returns null in android 3.1 
... 
Button buttonTakePicture = (Button)findViewById(R.id.buttonTakePictureMain);//fine 
buttonTakePicture.setOnClickListener(this); 
} 

main.xml:

(. Yo sé que no debo usar px, sino que hará trabajar sólo en mi dispositivo, por lo que está muy bien para este caso)

<Button 
android:id="@+id/buttonInfo" 
android:text="" 
android:layout_width="332px" 
android:layout_height="100px" 
android:background="@drawable/btn_team" /> 
... 
<Button 
android:id="@+id/buttonCallOpScreen" 
android:text="" 
android:layout_width="332px" 
android:layout_height="100px" 
android:background="@drawable/btn_operator" /> 
... 
<Button 
android:id="@+id/buttonTakePictureMain" 
android:text="" 
android:layout_width="80px" 
android:layout_height="80px" 
android:background="@drawable/btn_take_picture" 
android:layout_gravity="bottom|left" /> 

Cualquier ayuda sería apreciada, gracias hasta ahora.


Respuesta:

Resultó ser una más fea. Como hay varias personas trabajando en este proyecto, una de ellas parece haber cambiado el nombre en el layout-normal/main.xml. Mientras que las versiones de Android anteriores a 3.1 parecen cargar layout/main.xml, las más nuevas usan layout-normal/main.xml. Y como es más que comprensible si la identificación de ese botón es diferente findViewById (int) tiene que devolver nulo.

¡Perdón por molestarlo con eso y gracias por los comentarios!

Como tengo menos de 100 reputación, no puedo responder mi propia pregunta para cerrarla, si alguien puede publicar esta respuesta, la acepto, gracias.

+0

¿Ha intentado limpiar el proyecto? –

+0

seleccione el proyecto y limpie y reconstruya el proyecto desde la barra de menú del proyecto – Pratik

+0

gracias por esa respuesta rápida, ya intenté - sin éxito – Martin

Respuesta

0

La siguiente respuesta fue descubierta por la persona que hizo la pregunta. Los detalles son los siguientes:

ya que hay varias personas que trabajan en este proyecto uno de parecía haber cambiado el nombre en el directorio/main.xml diseño normal. Mientras que Android-Versiones anteriores a 3.1 parecen cargar layout/main.xml, las más recientes usan layout-normal/main.xml. Y como es más que entender si el id de ese botón es un findViewById (int) diferente tiene que return null.

Cuestiones relacionadas