Desde el código fuente de una activity será muy común que quieras tener acceso a las propiedades y usar los métodos de los componentes (View), por ejemplo, de elementos como botones, etiquetas, campos de texto, etc., incluidos en el layout correspondiente. Para ello, a cada componente se le asigna un identificador (ID).

Al añadir el componente al layout desde el diseño gráfico se le asigna automáticamente un ID. Para modificarlo, lo más sencillo es hacer doble clic sobre el elemento.

StudioId01

Otras maneras de hacer lo mismo es a través de la ventana de propiedades (en la propiedad Id), o desde el archivo XML se puede asignar también el identificador modificando el valor del atributo android:id. siguiendo el siguiente formato:

@+id/identificadorAsignado

Por ejemplo:

StudioId02

<TextView
android:id="@+id/etiqueta1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />

Desde el código fuente de la activity se puede obtener una referencia al elemento (View) usando el método findViewById de la clase Activity.

public View findViewById (int id)

Este método busca el objeto de la clase View (elemento del layout) cuyo identificador se indica como parámetro, y retorna el objeto View si lo encuentra o null en caso contrario.

Para poder hacer uso de los métodos correspondientes al tipo de elemento View adecuado, es necesario convertir el objeto View al tipo de objeto adecuado. Por ejemplo, para obtener el objeto de tipo TextView cuyo identificador es etiqueta1:

TextView etiquetaConIDEtiqueta1 = (TextView) findViewById(R.id.etiqueta1);

Recuerda que siempre deberás importar la clase correspondiente:

import android.widget.TextView;

Es habitual declarar como propiedades de la activity a los objetos View que contiene, para tener así acceso a ellos desde cualquier otro método de la clase.

public class MainActivity extends Activity {

TextView etiquetaConIDEtiqueta1;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

etiquetaConIDEtiqueta1 = (TextView) findViewById(R.id.etiqueta1);

otroMetodo();
}

private void otroMetodo() {
etiquetaConIDEtiqueta1.setText("Cambio de texto");
}

}