<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=TextView._Definici%C3%B3n_de_recursos_XML</id>
	<title>TextView. Definición de recursos XML - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=TextView._Definici%C3%B3n_de_recursos_XML"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=TextView._Definici%C3%B3n_de_recursos_XML&amp;action=history"/>
	<updated>2026-10-25T07:38:38Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=TextView._Definici%C3%B3n_de_recursos_XML&amp;diff=57082&amp;oldid=prev</id>
		<title>Angelfg en 11:39 24 jul 2015</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=TextView._Definici%C3%B3n_de_recursos_XML&amp;diff=57082&amp;oldid=prev"/>
		<updated>2015-07-24T11:39:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Introdución==&lt;br /&gt;
*Un &amp;#039;&amp;#039;&amp;#039;TextView&amp;#039;&amp;#039;&amp;#039; é unha etiqueta de texto que serve para amosar texto na aplicación.&lt;br /&gt;
*Este control é unha subclase da clase &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Opcionalmente pódese permitir editar o contido.&lt;br /&gt;
*A clase que implementa o control vén configurada para non permitir a edición.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Aproveitando que este é o primeiro control que imos ver, tamén imos explicar como se definen &amp;#039;&amp;#039;&amp;#039;constantes&amp;#039;&amp;#039;&amp;#039; para usar nos recursos XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Referencias&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**A clase &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;: http://developer.android.com/reference/android/view/View.html&lt;br /&gt;
***Antes de continuar é importante familiarizarse (non fai falla aprender nada) cos métodos, subclases e atributos que ten esta clase de que van colgar todos os demais controis. Co cal, aparte de pararse na seguinte imaxe, é aconsellable premer no enlace anterior.&lt;br /&gt;
[[Image:00_Part_of_Android_View_Hierarchy.png|600px]]&lt;br /&gt;
***Imaxe obtida de: http://www.itcsolutions.eu/2011/08/27/android-tutorial-4-procedural-vs-declarative-design-of-user-interfaces&lt;br /&gt;
**Control TextView: http://developer.android.com/reference/android/widget/TextView.html&lt;br /&gt;
***Observar no enlace anterior o valor do atributo &amp;#039;&amp;#039;&amp;#039;editable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
**Recomendacións de tipografía: http://developer.android.com/design/style/typography.html&lt;br /&gt;
***Observar no enlace anterior o tamaño recomendado en px do lanzador dunha aplicación en Google Play.&lt;br /&gt;
**Cores: http://developer.android.com/guide/topics/resources/more-resources.html#Color&lt;br /&gt;
***Observar en que formatos se pode describir unha cor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Casos prácticos===&lt;br /&gt;
*Comezamos creando un novo proxecto: &amp;#039;&amp;#039;&amp;#039;U2_07_TextView&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Imos comezar creando un layout con 2 TextViews, onde o segundo TextView se modifica en tempo de execución (ao iniciarse a aplicación).&lt;br /&gt;
&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_01.jpg|300px]]&lt;br /&gt;
*A imaxe amosa en tempo de deseño os 2 TextViews.&lt;br /&gt;
*Le o contido da etiqueta azul.&lt;br /&gt;
&lt;br /&gt;
*O XML do layout asociado a esa imaxe é:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;9,12,15,18,19&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:padding=&amp;quot;20sp&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_orixinal&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/hello_world&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_java&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;#00F&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Dá igual o que escribamos aquí. Neste exemplo, ao lanzar a aplicación, vaise cambiar este texto&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;NOTA ECLIPSE&amp;#039;&amp;#039;&amp;#039;: os campos dos controis pódense poñer na orde que se desexe. Se se preme &amp;#039;&amp;#039;&amp;#039;SHIFT+CTRL+F&amp;#039;&amp;#039;&amp;#039; Eclipse vai organizar o código e ordenar os campos. Esa combinación de teclas pode usarse tanto en código XML como Java.&lt;br /&gt;
*Nas liñas 9 e 15 asóciase un ID a cada control, TextView, que logo usaremos en Java.&lt;br /&gt;
*Observar as diferenzas entre as liñas 12 e 19. A primeira amosará o texto que contén a constante definida en XML (noutro ficheiro XML), a segunda amosa o texto directamente.&lt;br /&gt;
*Como xa se sabe, neste caso, a definición da constante &amp;#039;&amp;#039;&amp;#039;@string/hello_world&amp;#039;&amp;#039;&amp;#039; está no ficheiro de recursos: &amp;#039;&amp;#039;&amp;#039;/res/values/strings.xml&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_02.jpg|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;resources&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;string name=&amp;quot;app_name&amp;quot;&amp;gt;U2_07_TextView&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string name=&amp;quot;action_settings&amp;quot;&amp;gt;Settings&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string name=&amp;quot;hello_world&amp;quot;&amp;gt;Hello world!&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/resources&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Como xa se dixo é recomendable usar o primeiro caso, pero no material vaise &amp;#039;&amp;#039;abusar&amp;#039;&amp;#039; do segundo caso para que se entendan os exemplos máis facilmente.&lt;br /&gt;
*No segundo caso, como xa se indicou, o IDE Eclipse dará unha advertencia na liña 19 porque recomenda que esa propiedade se declare a través dunha constante.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*As liñas 9 e 15 están creando o ID para os controis para que poidan ser accedidos dende Java a través da Clase R.&lt;br /&gt;
*Observar na imaxe a declaración deses IDs. &lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_04.jpg|600px]]&lt;br /&gt;
*Isto xerase automaticamente cando se ten &amp;#039;&amp;#039;&amp;#039;gardado o documento XML&amp;#039;&amp;#039;&amp;#039; onde se declaran os controis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Finalmente mirar como se define a cor azul (RGB), liña 18. Esta definición tamén podería estar usando unha constante declarada noutro ficheiro XML, como se verá ao final deste apartado.&lt;br /&gt;
&lt;br /&gt;
===Acceder e manipular o control dende Java===&lt;br /&gt;
*A continuación imos acceder ao control EditText declarado en XML dende Java e imos realizar accións sobre o control.&lt;br /&gt;
*Para iso imos á clase Java que lanza a aplicación. (Por agora só hai unha clase Java).&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_03.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
*Como xa se indicou, podemos acceder aos elementos visuais declarados en XML a través do seu ID usando de intermediaria a clase R.&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_04.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Dentro do método &amp;#039;&amp;#039;&amp;#039;onCreate()&amp;#039;&amp;#039;&amp;#039; que é o encargado de lanzar a Activity, como se verá máis adiante.&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_05.jpg|600px]]&lt;br /&gt;
*Comezamos a declarar un obxecto de tipo TextView.&lt;br /&gt;
*A medida que imos escribindo o tipo se prememos &amp;#039;&amp;#039;&amp;#039;CTRL+ Barra espaciadora&amp;#039;&amp;#039;&amp;#039; xa sabemos que nos vai a autocompletar, pero ademais vai &amp;#039;&amp;#039;&amp;#039;importar o paquete&amp;#039;&amp;#039;&amp;#039; que define onde está declarada a clase. &lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_07.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Declaramos un obxecto de tipo TextView e queremos asocialo ao primeiro TextView do Layaout (ID:tv_orixinal).&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_08.jpg|600px]]&lt;br /&gt;
*Para iso precisamos o método &amp;#039;&amp;#039;&amp;#039;findViewById()&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Recibe como parámetro unha constante&amp;#039;&amp;#039;&amp;#039; da Clase R: neste caso o id asociado a un elemento visual. (CTRL+Barra espaciadora, para localizar a constante).&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Devolve un obxecto&amp;#039;&amp;#039;&amp;#039; de tipo &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Todo control visual é unha &amp;#039;&amp;#039;&amp;#039;subclase&amp;#039;&amp;#039;&amp;#039; de &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;, por tanto como obtemos un obxecto View é preciso facer un &amp;#039;&amp;#039;&amp;#039;casting&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;(TextView)&amp;#039;&amp;#039;&amp;#039; para que faga unha conversión de tipos ao tipo desexado, neste caso dun &amp;#039;&amp;#039;&amp;#039;obxecto tipo View&amp;#039;&amp;#039;&amp;#039; a un &amp;#039;&amp;#039;&amp;#039;obxecto de tipo TextView&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*A continuación amósase o código Java que vai manipular o TextView&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;15,16,18&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_07_textview;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
public class U2_07_TextView extends Activity {&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u2_07__text_view);&lt;br /&gt;
		&lt;br /&gt;
		final TextView tvOrixinal = (TextView) findViewById(R.id.tv_orixinal);&lt;br /&gt;
		final TextView tvJava = (TextView) findViewById(R.id.tv_java);&lt;br /&gt;
		&lt;br /&gt;
		tvJava.setText(&amp;quot;Etiqueta modificada en java: &amp;quot;+tvOrixinal.getText());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u2_07__text_view, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Liña 15: temos un obxecto que apunta a TextView orixinal, ao primeiro TextView do Layout.&lt;br /&gt;
*Liña 16: temos un obxecto que apunta ao novo TextView, ao segundo do Layout.&lt;br /&gt;
*Liña 18: modificamos o texto do segundo TextView. O contido é unha cadea de texto concatenada (+) co texto que ten o primeiro TextView.&lt;br /&gt;
**Observar a función dos métodos: &amp;#039;&amp;#039;&amp;#039;setText()&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;getText()&amp;#039;&amp;#039;&amp;#039;. No seguinte enlace pódense ver estes métodos públicos: http://developer.android.com/reference/android/widget/TextView.html#pubmethods. &lt;br /&gt;
*Cando se lance a aplicación vaise executar ese código, co cal o texto do segundo TextView non vai ser o que se indicou no Layout en tempo de deseño senón o que se indica en tempo de execución.&lt;br /&gt;
&lt;br /&gt;
*A imaxe amosa a execución da aplicación:&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_09.jpg|300px]]&lt;br /&gt;
*Observar o contido da segunda liña, non é o que se asignou no Layout.&lt;br /&gt;
&lt;br /&gt;
===Manipulación html dunha etiqueta de texto===&lt;br /&gt;
*As Etiquetas de texto non son texto (String) senón que son código semellante ao html.&lt;br /&gt;
*Entón na liña 18 anterior parece que hai unha contradición: concatenar unha cadea con &amp;#039;&amp;#039;algo&amp;#039;&amp;#039; html.&lt;br /&gt;
*Teríamos que ter usado o método &amp;#039;&amp;#039;&amp;#039;toString()&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;tvOrixinal.getText().toString()&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Pero en Java non fai falla poñelo porque ese método chámase automaticamente sempre que o obxecto se concatene con outro String (Neste caso a cadea de texto).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Para obter a seguinte imaxe non se vai tocar o XML e vaise facer todo en Java.&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_10.jpg|300px]]&lt;br /&gt;
*Na segunda etiqueta cambiouse: cor, tamaño da fonte e púxose en &amp;#039;&amp;#039;&amp;#039;negriña&amp;#039;&amp;#039;&amp;#039; unha palabra.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Código JAVA  ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;21-25&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_07_textview;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.graphics.Color;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.text.Html;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
public class U2_07_TextView extends Activity {&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u2_07__text_view);&lt;br /&gt;
		&lt;br /&gt;
		final TextView tvOrixinal = (TextView) findViewById(R.id.tv_orixinal);&lt;br /&gt;
		final TextView tvJava = (TextView) findViewById(R.id.tv_java);&lt;br /&gt;
		&lt;br /&gt;
		tvJava.setText(&amp;quot;Etiqueta modificada en java: &amp;quot;+tvOrixinal.getText());&lt;br /&gt;
		tvJava.append(&amp;quot;. Máis texto. &amp;quot;);&lt;br /&gt;
		tvJava.setTextColor(Color.RED);&lt;br /&gt;
		tvJava.setTextSize(20);&lt;br /&gt;
		tvJava.append(Html.fromHtml(&amp;quot;&amp;lt;p&amp;gt;&amp;lt;br&amp;gt;Isto está en &amp;lt;b&amp;gt;negriña&amp;lt;/b&amp;gt; e noutra liña.&amp;lt;/p&amp;gt;&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u2_07__text_view, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Para importar os paquetes premer (SHIFT + CTRL + O)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Liña 21: engade contido á etiqueta polo final da mesma e amosa o contido final.&lt;br /&gt;
*Liña 22: cambiar a cor usando unha constante estática.&lt;br /&gt;
*Liña 23: cambiar o tamaño da fonte&lt;br /&gt;
*Liña 24: devolve a cadea en formato HTML no que en Android se podería chamar &amp;#039;&amp;#039;Texto con estilo mostrable&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*A continuación vaise modificar a aplicación para que poidamos recuperar o contido exacto dun &amp;#039;&amp;#039;TextView&amp;#039;&amp;#039;, non o que amosa por pantalla.&lt;br /&gt;
*Tamén se vai usar o método &amp;#039;&amp;#039;&amp;#039;toString()&amp;#039;&amp;#039;&amp;#039; para ver o seu resultado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*A imaxe amosa o deseño do Layout&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_11.jpg|300px]]&lt;br /&gt;
*Observar a liña de separación e despois desta, dúas etiquetas de texto.&lt;br /&gt;
&lt;br /&gt;
*O Ficheiro XML asociado&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;21-24,26,32&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot;&lt;br /&gt;
    android:padding=&amp;quot;20sp&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_orixinal&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/hello_world&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_java&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Dá igual o que escribamos aquí. Neste exemplo, ao lanzar a aplicación, vaise cambiar este texto&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;#00F&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;View&lt;br /&gt;
        android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;2sp&amp;quot;&lt;br /&gt;
        android:background=&amp;quot;#000&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_html&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Cadena html do tv_java. Realizarase en java&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_string&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;String do tv_java. Realizarase en java&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;#00F&amp;quot;&lt;br /&gt;
        android:textSize=&amp;quot;16sp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Observar as liñas marcadas&lt;br /&gt;
&lt;br /&gt;
*A imaxe amosa a aplicación en execución:&lt;br /&gt;
[[Image:Android_2013_U2_07_TextView_12.jpg|300px]]&lt;br /&gt;
*Observar como a primeira etiqueta despois da liña ten o contido do que almacena o EditText vermello.&lt;br /&gt;
*A segunda etiqueta  despois da liña amosa a etiqueta vermella pasada polo método &amp;#039;&amp;#039;&amp;#039;toString&amp;#039;&amp;#039;&amp;#039;. Observar como xa non hai negriña.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*O código que fai iso posible é o seguinte:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;21,22,33,35,36&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_07_textview;&lt;br /&gt;
&lt;br /&gt;
import android.R.string;&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.graphics.Color;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.text.Html;&lt;br /&gt;
import android.text.Spanned;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
public class U2_07_TextView extends Activity {&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u2_07__text_view);&lt;br /&gt;
		&lt;br /&gt;
		final TextView tvOrixinal = (TextView) findViewById(R.id.tv_orixinal);&lt;br /&gt;
		final TextView tvJava = (TextView) findViewById(R.id.tv_java);&lt;br /&gt;
		final TextView tvHtml = (TextView) findViewById(R.id.tv_html);&lt;br /&gt;
		final TextView tvString = (TextView) findViewById(R.id.tv_string);&lt;br /&gt;
		&lt;br /&gt;
		tvJava.setText(&amp;quot;Etiqueta modificada en java: &amp;quot;+tvOrixinal.getText());&lt;br /&gt;
		&lt;br /&gt;
		//tvJava.setText(tvJava.getText()+&amp;quot;. Máis texto. &amp;quot;);&lt;br /&gt;
		tvJava.append(&amp;quot;. Máis texto. &amp;quot;);&lt;br /&gt;
		tvJava.setTextColor(Color.RED);&lt;br /&gt;
		tvJava.setTextSize(20);&lt;br /&gt;
		tvJava.append(Html.fromHtml(&amp;quot;&amp;lt;p&amp;gt;&amp;lt;br&amp;gt;Isto está en &amp;lt;b&amp;gt;negriña&amp;lt;/b&amp;gt; e noutra liña.&amp;lt;/p&amp;gt;&amp;quot;));&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		tvHtml.setText(Html.toHtml((Spanned)(tvJava.getText())));&lt;br /&gt;
		&lt;br /&gt;
		//tvString.setText(&amp;quot;&amp;quot;+tvJava.getText());&lt;br /&gt;
		tvString.setText(tvJava.getText().toString());&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u2_07__text_view, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Liña 33: colle o valor da etiqueta vermella e a pasa a formato Html.&lt;br /&gt;
*Liña 36: pasa a cadea vermella a String. Sería o equivalente á liña 35 (Concatenar cunha cadea).&lt;br /&gt;
&lt;br /&gt;
===Definición de constantes/recursos xml===&lt;br /&gt;
*Como xa vimos na definición XML do Layout temos valores postos á &amp;#039;&amp;#039;ferro&amp;#039;&amp;#039;.&lt;br /&gt;
*Sería bo definir esas propiedades noutros ficheiros XML, deste xeito permítese a reutilización e a internacionalización.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Recursos string&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:Android_2013_U2_07_TextView_13.jpg| Advertencia no XML indicando que  ...&lt;br /&gt;
Image:Android_2013_U2_07_TextView_14.jpg| usemos un recurso de tipo @string. &lt;br /&gt;
Image:Android_2013_U2_07_TextView_15.jpg| Editamos o ficheiro &amp;#039;&amp;#039;&amp;#039;res/values/strings.xml&amp;#039;&amp;#039;&amp;#039; ou creamos un novo en &amp;#039;&amp;#039;&amp;#039;/res/values&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
*Engadimos os novos recurso de tipo string. Observar as liñas marcadas.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;8-10&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;resources&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;string name=&amp;quot;app_name&amp;quot;&amp;gt;U2_07_TextView&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string name=&amp;quot;action_settings&amp;quot;&amp;gt;Settings&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string name=&amp;quot;hello_world&amp;quot;&amp;gt;Hello world!&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;string name=&amp;quot;texto_tv_java&amp;quot;&amp;gt;Dá igual o que escribamos aquí. Neste exemplo, ao lanzar a aplicación, vaise cambiar este texto&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string name=&amp;quot;texto_tv_html&amp;quot;&amp;gt;Cadena html do tv_java. Realizarase en java&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string name=&amp;quot;texto_tv_string&amp;quot;&amp;gt;String do tv_java. Realizarase en java&amp;lt;/string&amp;gt; &lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/resources&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Gardar o ficheiro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Uso recursos string&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:Android_2013_U2_07_TextView_16.jpg| No layout facemos uso dos recursos anteriores: (CTRL + Barra espaciadora). Lembrar gardar antes o ficheiro de recursos anterior.&lt;br /&gt;
Image:Android_2013_U2_07_TextView_17.jpg| Xa quedan menos advertencias: A da dimensión podería declararse no ficheiro &amp;#039;&amp;#039;&amp;#039;/res/values/dimens.xml&amp;#039;&amp;#039;&amp;#039; ou crear un novo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resources&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Default screen margins, per the Android Design guidelines. --&amp;gt;&lt;br /&gt;
    &amp;lt;dimen name=&amp;quot;activity_horizontal_margin&amp;quot;&amp;gt;16dp&amp;lt;/dimen&amp;gt;&lt;br /&gt;
    &amp;lt;dimen name=&amp;quot;activity_vertical_margin&amp;quot;&amp;gt;16dp&amp;lt;/dimen&amp;gt;&lt;br /&gt;
    &amp;lt;dimen name=&amp;quot;alto_liña&amp;quot;&amp;gt;2sp&amp;lt;/dimen&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/resources&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*A continuación vaise crear un ficheiro de recurso para as cores.&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Crear ficheiro de recursos&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:Android_2013_U2_07_TextView_18.jpg| En &amp;#039;&amp;#039;&amp;#039;/res/values&amp;#039;&amp;#039;&amp;#039; creamos un novo ficheiro &amp;#039;&amp;#039;&amp;#039;Android XML File&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Image:Android_2013_U2_07_TextView_19.jpg| Indicamos un nome significativo, vale calquera. Neste caso &amp;#039;&amp;#039;colors&amp;#039;&amp;#039; e gardamos.&lt;br /&gt;
Image:Android_2013_U2_07_TextView_20.jpg| Imos ao ficheiro&lt;br /&gt;
Image:Android_2013_U2_07_TextView_21.jpg| Engadimos un elemento&lt;br /&gt;
Image:Android_2013_U2_07_TextView_22.jpg| Seleccionar &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; e aceptar.&lt;br /&gt;
Image:Android_2013_U2_07_TextView_23.jpg| Engadimos a definición dunha cor graficamente ...&lt;br /&gt;
Image:Android_2013_U2_07_TextView_24.jpg| ... en modo texto.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ficheiro de recurso de cores:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;3-4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;resources&amp;gt;&lt;br /&gt;
    &amp;lt;color name=&amp;quot;azul&amp;quot;&amp;gt;#00F&amp;lt;/color&amp;gt;&lt;br /&gt;
    &amp;lt;color name=&amp;quot;negro&amp;quot;&amp;gt;#000&amp;lt;/color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/resources&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Uso dos recursos no layout. Como sempre, observar as liñas marcadas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;12,18,19,23,24,30,36,38&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot;&lt;br /&gt;
    android:padding=&amp;quot;20sp&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_orixinal&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/hello_world&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_java&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv_java&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;@color/azul&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;View&lt;br /&gt;
        android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;@dimen/alto_liña&amp;quot;&lt;br /&gt;
        android:background=&amp;quot;@color/negro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_html&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv_html&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_string&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;@color/azul&amp;quot;&lt;br /&gt;
        android:textSize=&amp;quot;16sp&amp;quot; &lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv_string&amp;quot;/&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Anda!!! Quedounos na liña 37 un valor candidato a ser definido nunha constante tipo &amp;#039;&amp;#039;dimen&amp;#039;&amp;#039;. Seguro que o participante no curso é quen de facelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015).&lt;/div&gt;</summary>
		<author><name>Angelfg</name></author>
	</entry>
</feed>