2012-05-23 12 views
12

Tengo lo siguiente dentro de un diseño relativo.(no se puede encontrar la referencia de identificación) Ningún recurso coincide con el nombre de pila

<TextEdit 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@id/buttonA" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_toLeftOf="@id/buttonA" /> 

<Button 
    android:id="@+id/buttonA" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:text="@string/message" > 
</Button> 

Eclipse me da estos errores en las líneas androide: layout_alignBottom = "@ id/buttonA" y android: layout_toLeftOf = "@ id/buttonA", respectivamente:

error: Error: Ningún recurso encontró que los fósforos el nombre de pila (en 'layout_alignBottom' con el valor '@ id/buttonA').

error: Error: No se encontró ningún recurso que coincida con el nombre de pila (en 'layout_toLeftOf' con el valor '@ id/buttonA').

Reemplazando @ id/buttonA con @ + id/buttonA elimina este mensaje de error de eclipse. ¿Es eso lo correcto? Si es así, ¿por qué funcionaría? ¿@ + Id no crea una nueva identificación? No quiero una nueva identificación. Quiero usar el referido en el objeto del botón. ¿Cuál es la mejor manera de lidiar con esto?

Gracias chicos. -Joe

Respuesta

31

El uso de @+id es la forma correcta de hacerlo. @+id crea una nueva identificación, pero solo si una con ese nombre no existe.

Si no quiere hacer eso, para este caso simple en particular sería suficiente mover el TextEdit debajo del Button.

+0

Sí, lo haré. Gracias. – J50

+2

Los cambiaré para que las referencias de identificación se vean bien. Gracias. ¿Por qué funcionaría @ + id? No estoy intentando crear un nuevo recurso de identificación, sino una referencia definida más adelante. – J50

+0

@ J50: Precisamente porque se define más adelante, en el momento en que intenta usarlo, aún no se ha definido. Y es por eso que usar el trabajo @ + id, porque obliga a la definición de dicha identificación. –

0

El diseño que está tratando de utilizar como referencia debe definirse antes de utilizarlo como referencia, es decir, usar como 'layout_toLeftOf'.

Es como si tuviera que declarar una variable en Java antes de usarla. Declarar luego usarlo ...

Cuestiones relacionadas