Publicado el Deja un comentario

Android. Activity, pasar datos entre pantallas

package com.example.ejemploactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    private EditText et;
    private Button bt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et=(EditText)findViewById(R.id.editText);
        bt=(Button)findViewById(R.id.button);
    }
    public void actividad(View v){
        Intent i=new Intent(this,Actividad2.class);
        i.putExtra("nombre",et.getText().toString());
        startActivity(i);
    }
}
package com.example.ejemploactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Actividad2 extends AppCompatActivity {
    private TextView tv;
    private Button bt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_actividad2);
        tv=(TextView)findViewById(R.id.textView);
        bt=(Button)findViewById(R.id.button2);
        Bundle bundle=getIntent().getExtras();
        String nombre=bundle.getString("nombre");
        tv.setText(nombre);
    }
    public void volver(View v){
        finish();
    }
}
Please follow and like us:
Publicado el Deja un comentario

09 Android. Pasar datos entre Actividades

En el video vemos como pasar datos entre Actividades Android, bajo estas lineas teneis el codigo completo usado en este ejemplo.

MainActivity

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    EditText etNombre;
    Button btnEnviar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etNombre=(EditText)findViewById(R.id.etNombre);
        btnEnviar=(Button)findViewById(R.id.btnEnviar);
        btnEnviar.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {
        Intent intent = new Intent(this,Activity2.class);
        intent.putExtra("nombre",etNombre.getText().toString());
        startActivity(intent);
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="ticoticotaa.es.pasardatosactivity.MainActivity">

    <TextView        android:id="@+id/textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/tvNombre"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintHorizontal_bias="0.051"        app:layout_constraintLeft_toLeftOf="parent"        app:layout_constraintRight_toRightOf="parent"        app:layout_constraintTop_toTopOf="parent"        app:layout_constraintVertical_bias="0.067" />

    <EditText        android:id="@+id/etNombre"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginStart="132dp"        android:layout_marginTop="24dp"        android:ems="10"        android:hint="@string/etNombre"        android:inputType="textPersonName"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" />

    <Button        android:id="@+id/btnEnviar"        android:layout_width="92dp"        android:layout_height="wrap_content"        android:layout_marginStart="132dp"        android:layout_marginTop="164dp"        android:text="@string/btnEnviar"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Activity2

package ticoticotaa.es.pasardatosactivity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class Activity2 extends AppCompatActivity {
    TextView tvSaludo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_2);
        tvSaludo=(TextView)findViewById(R.id.tvSaludo);
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        if(extras!=null){
            String Nombre = (String)extras.get("nombre");
            tvSaludo.setText("Hola "+Nombre);
        }
    }
}

activity_2.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="ticoticotaa.es.pasardatosactivity.Activity2">


    <TextView        android:id="@+id/tvSaludo"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text=""        tools:layout_editor_absoluteX="163dp"        tools:layout_editor_absoluteY="177dp" />
</android.support.constraint.ConstraintLayout>
Please follow and like us:
Publicado el Deja un comentario

03. TextView y Button

En este ejemplo explico como enlazar el codigo con las vistas xml de
android, empezaremos por ver como cambiar el texto de un TextView desde el
codigo Java, esta accion la realizaremos al pulsar el boton.
Para comenzar, seleccionamos Nuevo Proyecto en AndroidStudio.
Despues elegimos la API minima en la que se ejecutara nuestra aplicacion.
Despues seleccionamos una activity vacia.


Activity pantalla que vemos en el terminal, en este caso la ponemos vacia
para introducir nosotros su contenido.
Despues pasamos al paso donde ponemos nombre a la actividad principal, en
este caso dejamos el que esta por defecto, tanto en el archivo XML como en el
archivo JAVA que llamara a la actividad para que se visualice en pantalla.
Procedemos a finalizar y a esperar que se abra el proyecto.
En la parte izquierda nos aparece el explorador de archivos del proyecto que
acabamos de crear, destacando la carpeta java donde aparece el archivo
MainActivity que es donde introduciremos el codigo java para conseguir el
objetivo planteado.
Mas abajo en res/layout aparece el archivo activity_main.xml que es el
archivo que indica la parte visual de la aplicacion.

Como veis en android se separa el codigo de la parte visual, al igual que en
otros lenguajes.
El codigo xml de la actividad principal es:
?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.

com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#FF00FF"
    tools:context="ticoticotaa.es.tutorialtextview

button.MainActivity">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/texto"
        android:id="@+id/txtView"
        android:textSize="32sp"       
        android:layout_gravity="center_horizontal" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="@string/boton"
        android:id="@+id/btn"
        android:textSize="24sp"
        android:layout_gravity="center_horizontal" />

</LinearLayout>

En el que asignamos los nombres identificadores (ID) para llamarlos y
manejarlos desde codigo java, asignamos tambien el texto que mostraran enlazado
al archivo xml (string) desde el cual se manejan todos los nombres que queremos
mostrar en la aplicacion, esto hace mas facil traducir la aplicacion para que
se muestre en distintos lenguajes, como veremos mas adelante.
En este codigo los tamaños los he puesto con respecto al contenido
(wrap_content), se pueden poner en pixeles y en otras medidas como en dp (para
vistas) o sp (para textos) estos son escalables segun densidad de pantalla.
Tanto el boton como el texto estan centrados en pantalla y al LinearLayout
que los contiene le he puesto un color de fondo por destacarlo.
El codigo del string.xml es:
<resources>
    <string name="app_name">tutorialTextViewButton

</string>
    <string name="texto">Texto a cambiar</string>
    <string name="boton">Cambiar texto</string>
</resources>

La actividad principal queda de la siguiente manera:
Ahora pasamos al codigo java, en el que indicaremos mediante codigo que al
pulsar el boton se cambie el texto, e indique cuantas veces se ha pulsado el
boton.
El codigo java es:
package ticoticotaa.es.tutorialtextviewbutton;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity 

implements View.OnClickListener {
    int vecesPulsado=0;
    Button boton;
    TextView txtView;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        boton=(Button)findViewById(R.id.btn);
        txtView=(TextView)findViewById(R.id.txtView);
        boton.setOnClickListener(this);
        
    }
    public void  onClick(View v){
        vecesPulsado++;
        txtView.setText("Has Pulsado el boton "

+vecesPulsado+" veces");
    }
}
Primero preparamos las variables antes del metodo onCreate.
Dentro del metodo onCreate se prepara la activity que se mostrara al
usuario.
Despues de mostrarle la pantalla mediante el archivo xml que creamos
anteriormente, procedemos a enlazar el textView y el boton con el codigo java,
para lo cual asignamos a las variables el id buscado del texto y el boton.
Al boton le asignamos una escucha para detectar si se pulsa, mediante
onClickListener, el (this) se refiere a la activity actual, el contexto, que se
manda al metodo onClick, que es el que ejecuta el codigo al pulsar el boton.
Cuando se pulsa el boton incrementamos el contador (vecesPulsado) para
detectar que se ha vuelto a pulsar y despues ponemos un texto en el textView.
Al terminar nuestra aplicacion podemos pulsar el boton de ejecutar y
podremos probarla en un emulador o en nuestro movil si esta conectado al pc,
como vemos en la imagen siguiente.
Tambien podemos generar el archivo APK, desde el menu Build para instalarlo
en dispositivos android o publicarlo en GooglePlay.
Pongo aqui el video explicativo.

Si teneis alguna duda podeis contactar conmigo y os atendere a la mayor
brevedad.
Espero sea util. Gracias.
Please follow and like us: