Identificación de componentes
Para tener nuestra función de método ChangeColor, tendremos que asignar IDs a nuestro Layout y a nuestro TextView. Por defecto, nuestro objeto TextView «Hello World» no tiene un ID y tampoco nuestro Layout (que es un RelativeLayout, lo que significa que permite que los widgets y otros componentes estén alineados de forma relativa entre sí).
Seleccione el TextView en el cuadro superior derecho, que se titula «Árbol de componentes». Desplácese por sus propiedades hasta que vea «id». Cambie su ID a «texto».
Haz lo mismo con el componente de Diseño Relativo, pero establece su ID en «diseño».
Debería poder ver la identificación correspondiente junto a cada componente en el Árbol de Componentes.
Creación del método real
Pasemos al método actual de cambio de color. Ve a la pestaña MainActivity.java. En esta pestaña, verás un método llamado onCreate. Éste se ejecuta siempre que la aplicación se inicia por primera vez.
Crearemos nuestro método de «cambiar de color» justo después del onCreate. Añade lo siguiente a tu clase de MainActivity.java:
12345678publicvoidchangeColor(View view){RelativeLayout layout =(RelativeLayout)findViewById(R.id.layout);TextView text =(TextView)findViewById(R.id.text); layout.setBackgroundColor(Color.RED); text.setText(R.string.PageIsRed);}
java
Nuestro método convertirá el color de nuestro diseño en rojo una vez que se haga clic en el botón. También establecerá el objeto TextView para que diga «La página es roja».
Para el principiante de Android Studio, hay muchas cosas en el bloque de código de arriba que deberías notar.
Primero, mira nuestra firma de método: cambio de color del vacío público(Ver vista). Android requiere que los métodos de onClick tomen una Vista como parámetro; si no lo hace, su aplicación puede fallar.
A continuación, fíjense en el método findViewById(). Este es el método estándar para acceder a las Vistas (o a los objetos de la pantalla de la aplicación) para su uso en nuestra aplicación. Como puedes ver, necesitamos lanzar la vista resultante a RelativeLayout. Este casting es necesario porque findViewById devuelve una Vista; el polimorfismo de Java no permite que RelativeLayout (que es una Vista) se generalice a todos los tipos de Vistas.
Una vez más, también verás la advertencia amarilla sobre los recursos de cadenas cuando uses text.setText(«La página es roja»). Maneja esta advertencia de la misma manera que manejamos la advertencia de recursos de cadenas de texto de Button y obtendrás un recurso de cadenas como el mío (R.string.PageIsRed).