TEXTVIEW
Como se muestra en la imagen, tenemos varias opciones a la hora de elegir una etiqueta
informativa.
"Plain TextView" seria el TextvView bsico y "Large Text", "Medium Text", "Small Text" es el mismo
control, lo nico que nos cambia la apariencia, en concreto el tamao del texto.
EDITTEXT
De igual forma, el control bsico sera Plain Text, aunque tenemos muchas otras opciones que
nos proporciona Android Studio, como puede ser Password(Numeric), que nos automatiza el
control para que el usuario al pulsar, le aparezca el teclado numrico, y oculte los caracteres con
puntos.
Propiedades a destacar:
layout:width : indica el ancho del control (ojo no del texto que contiene)
3.
fill_parent: es exactamente igual que match_parent, es un valor obsoleto que no
debemos usar a no ser que nuestra aplicacin sea compatible con versiones anteriores a
Android 2.2, a partir de esta versin debemos usar match_parent.
4.
No debemos confundir la propiedad Gravity con layout:gravity, esto suele crear bastante
confusin sobre todo cuando uno se inicia en el mundillo de android.
Gravity hace referencia al contenido mientras que layout:gravity hace referencia al control, es decir,
si queremos alinear el texto dentro del control hacia la derecha, utilizaremos Gravity, y marcaremos
la opcin de right, mientras que si queremos alinear todo el control a la derecha de la
pantalla(activity), utilizaremos layout:gravity y tambin marcaremos right.
Propiedad Autolink
Podemos definir que nuestro TextView, (ya que en EditText no es muy lgico utilizarla) para que se
genere un enlace, que el usuario al pulsarlo se abrir automticamente la aplicacin por defecto
para usar el enlace, por ejemplo si marcamos web siempre y cuando el texto sea una URL, se
abrir el navegador por esa URL, o si ponemos un nmero de telfono, automticamente nos
saldr la aplicacin para llamar a ese nmero.
Os animo a que juguis con las propiedades, que son muy intuitivas.
Es importante definir un id para nuestros controles, de esta forma podemos hacer referencia a
ellos en nuestro cdigo java.
Ejemplo de nuestro fichero xml: layout_main.xml:
<linearlayout android:layout_height="fill_parent"
android:layout_width="fill_parent" >
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<textview android:autolink="phone|email|map|none|web"
Para hacer obtener el texto que el usuario introduce en el EditText, lo primero es declarar el
control en nuestra clase de la siguiente forma:
EditText etTextoIntroducido = (EditText) findviewbyid(R.id.etEntradaTexto);
como muestro en el siguiente cdigo:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText etTextoIntroducido = (EditText)
findViewById(R.id.etEntradaTexto);
String texto = etTextoIntroducido.getText().toString();
}
Se utilizan para presentar sugerencias mientras el usuario escribe un texto, con una serie de
palabras que nosotros hemos predefinido, en forma de men desplegable.
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.MultiAutoCompleteTextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Declaramos las sugerencias
String[] paises =
getResources().getStringArray(R.array.paises_array);
autoTextView.setAdapter(adapter);
multiAutoTV.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
ToggleButton: similar al anterior puede tener dos estados, marcando con una luz si esta
activo.
Switch: el nuevo botn para versiones superiores a Android 4, que viene a sustituir a
ToggleButton.
<button android:id="@+id/btAceptar"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content" <
android:text="Aceptar">
</button>
Una vez definido el id del botn, ya podemos utilizarlo en nuestro cdigo java. Lo primero es
declararlo e inicializarlo, a continuacin llamamos al mtodo setOnClickListner creando un nuevo
objeto View.onClickListener, es ms fcil ver el cdigo que explicarlo:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancelar"
android:id="@+id/btCancelar"
android:layout_gravity="center"
android:onClick="clickBotonCancelar"/>
y ahora nuestro cdigo Java, insisto en los 3 requisitos que coment antes para que funcione
correctamente, como podis observar tampoco lo he declarado:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void clickBotonCancelar(View v) {
Toast.makeText(getBaseContext(), "Has pulsado Cancelar!",
Toast.LENGTH_SHORT).show();
}
Ingeniero, Giovanny Angulo
MTODO 3
Este mtodo es muy cmodo cuando nuestra activity utiliza varios botones. Como siempre veamos
el cdigo, idntico que el primer mtodo y difiere del segundo en que no utilizamos la propiedad
onClick en el XML.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/bt1"
android:layout_gravity="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:id="@+id/bt2"
android:layout_gravity="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:id="@+id/bt3"
android:layout_gravity="center"/>
Esta forma es una variante del mtodo 1, la diferencia es que nuestra clase MainActivity
implementa la clase OnClickListener.
@Override
public void onClick(View v) {
String s = new String();
switch (v.getId()) {
case R.id.bt1:
s = "Boton 1";
break;
case R.id.bt2:
s = "Boton 2";
break;
case R.id.bt3:
s = "Boton 3";
break;
}
Toast.makeText(getBaseContext(), "Has pulsado " + s,
Toast.LENGTH_SHORT).show();
}
}
A continuacin os dejo el cdigo fuente completo con todos los botones:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Aceptar"
android:id="@+id/btAceptar"
android:layout_gravity="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancelar"
android:id="@+id/btCancelar"
android:layout_gravity="center"
android:onClick="clickBotonCancelar"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/bt1"
android:layout_gravity="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
Ingeniero, Giovanny Angulo
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements
View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btAcept = (Button) findViewById(R.id.btAceptar);
btAcept.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(getBaseContext(), "Has pulsado Aceptar!",
Toast.LENGTH_SHORT).show();
}
});
@Override
Ingeniero, Giovanny Angulo