Actividad en Android
Qué es una actividad?
Aplicaciones en Android (Plataforma Moodle)
4.- Actividades y su ciclo de vida
Actividad:
Ciclo de vida:
Ejemplo de ciclo de vida:
5.- Guardar el estado de una Actividad
Enlace: Guardar el estado de una actividad
Aplicación Estados:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.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=".MainActivity"> <TextView android:id="@+id/texto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.139" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="31dp" android:text="Duplicar" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/texto" app:layout_constraintVertical_bias="0.086" /> </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package com.example.estados; import androidx.appcompat.app.AppCompatActivity; import android.util.Log; 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 { String tag = "MainActivity"; private int contador = 1; TextView texto; Button boton; //Cuando se crea la activity 1º Paso. donde se suele hacer la iniciar acciones de los componentes, cargar layaut , configurar //Componentes, etc.. @Override protected void onCreate(Bundle savedInstanceState) { Log.d(tag,"onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); texto = (TextView) findViewById(R.id.texto); boton = (Button) findViewById(R.id.button); boton.setOnClickListener(this); texto.setText(String.valueOf(contador)); } @Override public void onClick(View view) { contador = contador * 2; texto.setText(String.valueOf(contador)); } /* @Override protected void onSaveInstanceState(Bundle estado){ super.onSaveInstanceState(estado); estado.putInt("posicion", contador); } @Override protected void onRestoreInstanceState(Bundle estado){ super.onRestoreInstanceState(estado); contador = estado.getInt("posicion"); texto.setText(String.valueOf(contador)); } */ //Cuando volvemos a tener la pantalla en foco después de pasar de estado onStop() @Override protected void onStart() { Log.d(tag,"onStart"); super.onStart(); } //La activity se sigue viendo en pantalla pero hay algo que la esta bloqueando. @Override protected void onResume() { Log.d(tag,"onResume"); super.onResume(); Toast.makeText(this, "Mensaje al usuario", Toast.LENGTH_LONG).show(); } //Lo contrario de onResume(), cuando vuelve a estar preparada. @Override protected void onPause() { Log.d(tag,"onPause"); super.onPause(); } //cuando la aplicación va a segundo plano, cuando le damos al botón de home, si nos movemos a otra aplicación, etc.. estado dormido @Override protected void onStop() { Log.d(tag,"onStop"); super.onStop(); } //Cuando la activity se destruye y entes de destruir la aplicación(tanto por el sistema para dejar memoria o recursos //libre, como cierre de la aplicación o activity) @Override protected void onDestroy() { Log.d(tag,"onDestroy"); super.onDestroy(); } }
MainActivity.kt
package com.example.estados import android.os.Bundle import android.util.Log import android.view.View import android.widget.Button import android.widget.TextView import android.widget.Toast import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat class MainActivity : AppCompatActivity(), View.OnClickListener { var tag = "MainActivity" private var contador = 1 // var texto: TextView? = null lateinit var texto: TextView // var boton: Button? = null lateinit var boton: Button //Cuando se crea la activity 1º Paso. // onde se suelen hacer las acciones de iniciar los componentes, cargar layout, configurar componentes, etc.. override fun onCreate(savedInstanceState: Bundle?) { Log.d(tag, "onCreate") super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) texto = findViewById<View>(R.id.texto) as TextView boton = findViewById<View>(R.id.button) as Button boton.setOnClickListener(this) texto.text = contador.toString() } override fun onClick(view: View) { contador = contador * 2 texto.text = contador.toString() } /* @Override protected void onSaveInstanceState(Bundle estado){ super.onSaveInstanceState(estado); estado.putInt("posicion", contador); } @Override protected void onRestoreInstanceState(Bundle estado){ super.onRestoreInstanceState(estado); contador = estado.getInt("posicion"); texto.setText(String.valueOf(contador)); } */ override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putInt("posicion", contador) } override fun onRestoreInstanceState(savedInstanceState: Bundle) { super.onRestoreInstanceState(savedInstanceState) contador = savedInstanceState.getInt("posicion") texto.text = contador.toString() } //Cuando volvemos a tener la pantalla en foco después de pasar de estado onStop() override fun onStart() { Log.d(tag, "onStart") super.onStart() } //La activity se sigue viendo en pantalla pero hay algo que la esta bloqueando. override fun onResume() { Log.d(tag, "onResume") super.onResume() Toast.makeText(this, "Mensaje al usuario", Toast.LENGTH_LONG).show() } //Lo contrario de onResume(), cuando vuelve a estar preparada. override fun onPause() { Log.d(tag, "onPause") super.onPause() } //cuando la aplicación va a segundo plano, cuando le damos al botón de home, si nos movemos a otra aplicación, etc.. estado dormido override fun onStop() { Log.d(tag, "onStop") super.onStop() } //Cuando la activity se destruye y entes de destruir la aplicación(tanto por el sistema para dejar memoria o recursos //libre, como cierre de la aplicación o activity) override fun onDestroy() { Log.d(tag, "onDestroy") super.onDestroy() } }
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.