Está en la página 1de 25

ANDROID STUDIO

Ciclo de vida de un ACTIVITY


Codigo JAVA de CICLO DE VIDA de un ACTIVITY?
@Override
protected void onStart() {
super.onStart();
Toast.makeText(this, "OnStart", Toast.LENGTH_SHORT).show();
// La actividad est� a punto de hacerse visible.
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(this, "OnResume", Toast.LENGTH_SHORT).show();
// La actividad se ha vuelto visible (ahora se "reanuda").
}
@Override
protected void onPause() {
super.onPause();
Toast.makeText(this, "OnPause", Toast.LENGTH_SHORT).show();
// Enfocarse en otra actividad (esta actividad est� a punto de ser "detenida").
}
@Override
protected void onStop() {
super.onStop();
Toast.makeText(this, "OnStop", Toast.LENGTH_SHORT).show();
// La actividad ya no es visible (ahora est� "detenida")
}
@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(this, "OnDestroy", Toast.LENGTH_SHORT).show();
// La actividad est� a punto de ser destruida.
}

Capitulo 7. DEBUGG
*El DEBUGGER o mejor dicho en español, DEPRADOR, es un herramienta o aplicación que permite la ejecicion
controlada de un programa o código para seguir cada instrucción ejecutada y localizar asi los debuggers o
errores, códigos de protección, etc..
*BREAKPOINT es un punto de corte, que en programación es una línea/s, especefica/s en la cual queremos que
se detenga el flujo normal del programa.
Los fines pueden ser varios, como por ejemplo, verificar el flujo del programa, valores de variables, etc
Capitulo 8. Que es un TOAST
https://www.youtube.com/watch?v=ZeBlrtQAmN0

*Un TOAST es una notificación emergente , con la cual podemos mostrar un mensaje a los usuarios de nuestra
aplicación.
*Este mensaje aparece en la pantalla o Activiti que se esta utilizando, pero en ningún momento bloquea las
funciones de la aplicación.
*Esto quiere decir, que la pantalla o Activity que se esta utilizando permanece activa.
*Por otro lado el mansaje TOAST no acepta interaccion, lo que significa que al tocarlo no sucede nada.
*Este tipo de mansajes acepta texto, imágenes o texto con imágenes. Todo depende del programador, ya que
puede personalizar un TOAST según sus necesidades.
*Para utilizar un TOAST es necesario importar la librería que contiene a esta clase:
import Android.widget.Toast;

*La estructura de un TOAST es la siguiente:


Toast.makeText (Context contexto, String texto, int Duracion).shew();

Codigo JAVA copier y pegar en MainAtivity.java


int matematicas = 5;
int quimica = 5;
int fisica = 5;
int promedio = 0;

promedio = (matematicas + quimica + fisica) / 3;

if(promedio >= 6){


Toast.makeText(this, "Aprobado", Toast.LENGTH_SHORT).show();
} else if(promedio <= 5){
Toast.makeText(this, "Reprobado", Toast.LENGTH_LONG).show();
}

Uso de “Strings”
miPrimerApp: “CALCULADORA”
package com.example.miprimerapp;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

private EditText et1;


private EditText et2;
private TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1 = (EditText) findViewById(R.id.txt01);


et2 = (EditText) findViewById(R.id.txt02);
tv1 = (TextView) findViewById(R.id.txt_resultado);
}

//Este metodo realiza la suma


//Esto es Java

public void Suma (View view){

String valor1 = et1.getText().toString();


String valor2 = et2.getText().toString();

int num1 = Integer.parseInt(valor1);


int num2 = Integer.parseInt(valor2);

int Sumar = num1 + num2;

String result = String.valueOf(Sumar);


tv1.setText(result);
}
}
MiSegundaApp – “Promedio”
package com.example.miprimerejpract;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

private TextView tv01;


private EditText et01;
private EditText et02;
private EditText et03;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tv01 = (TextView) findViewById(R.id.tv_Status);


et01 = (EditText) findViewById(R.id.et_mate);
et02 = (EditText) findViewById(R.id.et_fisi);
et03 = (EditText) findViewById(R.id.et_quimi);

}
//Este metodo realiza la el promedio
//esto es Java

public void Promedio (View view) {

String Mate_String = et01.getText().toString();


String fisi_String = et02.getText().toString();
String quimi_String = et03.getText().toString();

int mate_int = Integer.parseInt(Mate_String);


int fisi_int = Integer.parseInt(fisi_String);
int quimi_int = Integer.parseInt(quimi_String);

int Promedio = (mate_int + fisi_int + quimi_int) / 3;

if(Promedio >= 6){


tv01.setText("APROBADO su nota es " + Promedio);
} else if ( Promedio <=5){
tv01.setText("DESAPROVADO SU nota es " + Promedio);
}
}

}
Como utilizar “RADIO GROUP” y “Radio BOTON” (Cap.13)
*radio botón solo permite seleccionar una sola opción

package com.example.app_redioboton;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private EditText et1, et2;


private TextView tv1;
private RadioButton rb1, rb2, rb3, rb4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1 = (EditText) findViewById(R.id.txt_valor1);


et2 = (EditText) findViewById(R.id.txt_valor2);
tv1 = (TextView) findViewById(R.id.tv_resultado);
rb1 = (RadioButton) findViewById(R.id.rb_sumar);
rb2 = (RadioButton) findViewById(R.id.rb_Restar);
rb3 = (RadioButton) findViewById(R.id.rb_Multiplicar);
rb4 = (RadioButton) findViewById(R.id.rb_Division);
}
//Metodo para el BOTON CALCULAR (JAVA)
public void calcular(View view){
String valor1_String = et1.getText().toString();
String valor2_String = et2.getText().toString();

int valor1_int = Integer.parseInt(valor1_String);


int valor2_int = Integer.parseInt(valor2_String);

if(rb1.isChecked() == true){
int suma = valor1_int + valor2_int;
String resultado = String.valueOf(suma);
tv1.setText(resultado);
} else if (rb2.isChecked() == true) {
int resta = valor1_int - valor2_int;
String resultado = String.valueOf(resta);
tv1.setText(resultado);
} else if (rb3.isChecked() == true) {
int Multiplicar = valor1_int * valor2_int;
String resultado = String.valueOf(Multiplicar);
tv1.setText(resultado);
} else if (rb4.isChecked() == true) {

if(valor2_int != 0){
int Division = valor1_int / valor2_int;
String resultado = String.valueOf(Division);
tv1.setText(resultado);
}else {
Toast.makeText(this, "El segundo valor debe ser distinto de cero",
Toast.LENGTH_LONG).show();

}
}
}

Utilizacion de “CHECK BOX” (Cap.17)


package com.example.checkboxapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private EditText et1, et2;


private CheckBox ch1, ch2;
private TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1 = (EditText) findViewById(R.id.et_v1);


et2 = (EditText) findViewById(R.id.et_v2);
ch1 = (CheckBox) findViewById(R.id.ch_01);
ch2 = (CheckBox) findViewById(R.id.ch_02);
tv1 = (TextView) findViewById(R.id.tv_01);
}

//Este metodo es la funcion del BOTON y View e ir a activar a "on Clic"


public void Calcular(View BTN) {
String valor1_String = et1.getText().toString();
String valor2_String = et2.getText().toString();

int valor1_int = Integer.parseInt(valor1_String);


int valor2_int = Integer.parseInt(valor2_String);
//Estructuramos la parte logica de nuestro programa
//"Variable de acumulacion"
String Resultado = "";

if (ch1.isChecked() == true) {
int suma = valor1_int + valor2_int;
Resultado = "La Suma es: " + suma + " / ";
}
if (ch2.isChecked() == true) {
int resta = valor1_int - valor2_int;
Resultado = Resultado + " La Resta es: " + resta;
}
tv1.setText(Resultado);
}
}
Utilizacion del “SPINNER” (Cap.18 y 19)
package com.example.spinner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

private Spinner Spin01;


private EditText et01, et02;
private TextView tv01;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et01 = (EditText) findViewById(R.id.et_01);


et02 = (EditText) findViewById(R.id.et_02);
tv01 = (TextView) findViewById(R.id.tv_01);
Spin01 = (Spinner) findViewById(R.id.spinner);
//Ahora JAVA
//Forma en que se ingresan los datos del "SPINNER"
String [] opciones = {"Suma","Resta","Multiplicar","Dividir"};

ArrayAdapter <String> OpcDeSpin = new


ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, opciones);
Spin01.setAdapter(OpcDeSpin);

}
//Parte logica o Metodo del Boton
public void Calcular (View view){
String valor1_String = et01.getText().toString();
String valor2_String = et02.getText().toString();

int valor1_int = Integer.parseInt(valor1_String);


int valor2_int = Integer.parseInt(valor2_String);

//MomOp = para que RETENGA EN MEMORIA LA OPCION ELEGIDA DEL SPINNER


String MemOp = Spin01.getSelectedItem().toString();
if (MemOp.equals("Suma")){
int suma = valor1_int + valor2_int;
String resultado = String.valueOf(suma);
tv01.setText(resultado);
} else if (MemOp.equals("Resta")){
int Resta = valor1_int - valor2_int;
String resultado = String.valueOf(Resta);
tv01.setText(resultado);
} else if (MemOp.equals("Multiplicar")) {
int Multi = valor1_int * valor2_int;
String resultado = String.valueOf(Multi);
tv01.setText(resultado);
} else if (MemOp.equals("Dividir")) {
//ADVERTENCIA de que no se puede dididir por 0
if(valor2_int != 0){

int Divid = valor1_int / valor2_int;


String resultado = String.valueOf(Divid);
tv01.setText(resultado);
} else {
//Cartel que debera aperecer avisando que no se puedo devidr por 0.
Toast.makeText(this, "No se puede dividir por cero",
Toast.LENGTH_LONG).show();
}
}
}

Como modificar EL CONTENIDO del Spinner (Cap.19) FALTA!!!!!

Como usar el LIST VIEW (Cap.20)


package com.example.listview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private TextView tv1;


private ListView lv1;

private String nombres [] =


{"Coraje","Avilio","Checa","Tigre","Koda","Lupo","Balu","Bitch"};
private String edades [] = {"8","7","5","4","6","3","7","6"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tv1 = (TextView) findViewById(R.id.tv1);


lv1 = (ListView) findViewById(R.id.lv1);

ArrayAdapter <String> adapterDeAlex = new ArrayAdapter<>( this,


R.layout.list_item_changes, nombres);
lv1.setAdapter(adapterDeAlex);

lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long
id) {
tv1.setText("La edad de " + lv1.getItemAtPosition(i) + " es " +
edades [i] + " años" );
}
});
}
}
*NOTA
Previo a ViewList deberemos generar un archivo en el siguiente directorio de la APP
App>res>layout> Click Derecho>New>Layout Resourse File
Le ponen un nombre > Finish

<?xml version="1.0" encoding="utf-8"?>

<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#048A7C"
android:textSize="24sp"
android:padding="10sp"
android:textColor="#123456"
xmlns:android="http://schemas.android.com/apk/res/android" />
Como usar el IMAGE BOTON (Cap.20)
*NOTA
*recomendaciones importar botones de 50x50px
*Formato .jpg o .png
*Nombre de las imágenes en minúsculas.
package com.example.imageboton;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

//Mateodo boton Avatar


public void Avatar(View view) {
Toast.makeText(this, "Igrese la foto del perro", Toast.LENGTH_LONG).show();
}

//Mateodo boton Naturaleza


public void Verde(View view) {
Toast.makeText(this, "Color verde", Toast.LENGTH_LONG).show();
}
}
Uso de EditText “PLAIN TEXT” y “PASSWORD” (Cap.22)
package com.example.edittext_sincamposvacios;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private EditText etn, etp;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

etn = (EditText) findViewById(R.id.txt_nombre);


etp = (EditText) findViewById(R.id.txt_password);
}

//Metodo para el boton 'REGISTRAR"


public void Registrar(View view){

String nombre = etn.getText().toString();


String password = etp.getText().toString();

if (nombre.length() == 0){
Toast.makeText(this, "Debes ingresar un Nombre",
Toast.LENGTH_LONG).show();
}
if (password.length() == 0) {
Toast.makeText(this, "Debes ingresar un Password",
Toast.LENGTH_LONG).show();
}
if (nombre.length() !=0 && password.length() !=0){
Toast.makeText(this, "Registro en proceso...",
Toast.LENGTH_LONG).show();
}
}
}
Iniciar otra activity (Cap.23)

Para navegar a través de las distintas pantallas que puede tener una aplicación, es
necesario iniciar una nueva Activity en cada ocasión.
Es decir, por cada cambio de pantalla dentro de la aplicación, se debe lanzar o iniciar
una nueva Activity, de lo contrario, el cambio de pantalla no se realizará.
Para lograr esto, es necesario recurrir eal objeto llamado “Intent”

Intent

Una Intent, es un objeto de acción que puedes usar para solicitar una acción de otro
componente de la aplicación.
El Intent representa la "intención de hacer algo" de una app. Se pueden usar las intents
para varias tareas, pero en este video el intent iniciará otra activity.
Para crear una intent, basta con crear un objeto:

Intent i = new Intent(this, Activiti 2.class);

StartActivity (i);

App>new>Activity>Empty Activity Al presionar nos abre una nueva ventana Activity2 o El nombre
que querramos.

MainActivity

//Metodo para el Boton Siguiente


public void siguiente (View view){
Intent siguiente = new Intent(this, Activity2.class);
startActivity(siguiente);
}
}

Activity2

//Metodo para el Boton Volver


public void Volver (View view){
Intent Volver = new Intent(this, MainActivity.class);
startActivity(Volver);
}
}

Como pasar info de una Activiti a Otra (Cap.28)


*Uso de la herramienta TEXT PLAIN (en MainActivity)

MainActivity

public class MainActivity extends AppCompatActivity {

private EditText et1;

@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText) findViewById(R.id.et1);
}
//Método para el botón enviar
public void Enviar (View view){
Intent i = new Intent(this, MainActivity2.class);
i.putExtra("dato", et1.getText().toString());
startActivity(i);
}
}
MainActivity2

public class MainActivity2 extends AppCompatActivity {

private TextView tv2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

tv2 = (TextView) findViewById(R.id.tv2);

String dato = getIntent().getStringExtra("dato");


tv2.setText("Hola " + dato);
}

//Método para el botón Regresar


public void Regresar (View view){
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
}
}

CONTROL WEBWIER (Cap.25) FALTA!!!!!

SharedPreferences (Cap.26)

La clase SharedPreferences o también conocida como preferencias, no son más que datos que una
aplicación debe guardar, para personalizar la experiencia del usuario.

Como por ejemplo: información personal, opciones de presentación y configuración.

Android proporciona distintas opciones para el almacenamiento permanente de datos, es decir, que
los datos ingresados no se pierden cuando se cierra la aplicación.

Cuando tenemos que almacenar una cantidad limitada de datos, es adecuado utilizar la clase
SharedPreferences.

Por ejemplo, configuraciones de la aplicación como pueden ser colores de pantalla, nivel actual en un
juego, datos iniciales de controles de entrada de dato, etc.

package com.example.sheredpreferences;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private EditText et1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1 = (EditText) findViewById(R.id.txt_mail);

SharedPreferences preferences = getSharedPreferences("datos",


Context.MODE_PRIVATE);
et1.setText( preferences.getString("mail", ""));
}

//metodo para el boton "GUARDAR"


public void Guardar (View view){
SharedPreferences preferencias = getSharedPreferences("datos",
Context.MODE_PRIVATE);
SharedPreferences.Editor Obj_editor = preferencias.edit();
Obj_editor.putString( "mail", et1.getText().toString());
Obj_editor.commit();
finish();
}

}
Ejercicio con SharedPreferences : Agenda (Cap.27)

package com.example.sharedpreferencesagenda;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private EditText et_nombre, et_datos;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et_nombre = (EditText) findViewById(R.id.txt_nombre);


et_datos = (EditText) findViewById(R.id.txt_datos);

}
//Metodo para el boton GUARDAR
public void Guardar (View view){
String nombre = et_nombre.getText().toString();
String datos = et_datos.getText().toString();

SharedPreferences preferencias = getSharedPreferences("agenda",


Context.MODE_PRIVATE);
SharedPreferences.Editor obj_editor = preferencias.edit();
obj_editor.putString( nombre, datos);
obj_editor.commit();

Toast.makeText(this, "Contacto guardado", Toast.LENGTH_SHORT).show();


}

//Metodo para el boton BUSCAR


public void Buscar (View view){
String nombre = et_nombre.getText().toString();

SharedPreferences preferencias = getSharedPreferences("agenda",


Context.MODE_PRIVATE);
String datos = preferencias.getString(nombre, "");

if (datos.length() == 0){
Toast.makeText(this, "No se encontro ningun registro",
Toast.LENGTH_SHORT).show();
} else {
et_datos.setText(datos);
}
}
}

ALMACENAMIENTO DE DATOS (Cap.28)

Otra alternativa de almacenar datos en nuestro dispositivo Android, es el empleo de un


archivo de texto o fichero que se guardará en el almacenamiento interno del dispositivo
móvil.
Los ficheros almacenados solo son accesibles para la aplicación que los creó, no pueden
ser leidos por otras aplicaciones, ni siquiera por el usuario del teléfono o dispositivo
Android.
Cada aplicación dispone de una carpeta especial para almacenar ficheros:

(/data/data/nombre_del_paquete/files).

La ventaja de utilizar esta carpeta, es que cuando se desinstala la aplicación los ficheros
que has creado se eliminarán.
Cuando trabajes con ficheros en Android, ten siempre en cuenta que la memoria
disponible de los teléfonos móviles es limitada.

ALMACENAMIENTOS DE DATOS. Sistema interno de ficheros

package com.example.bitacora;

import static java.lang.System.in;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private EditText et1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1 = (EditText) findViewById(R.id.txt_bitacora);


String archivos[] = fileList();

if(ArchivoExiste (archivos, "bitacora.txt")){


try {
InputStreamReader archivo = new
InputStreamReader(openFileInput("bitacora.txt"));
BufferedReader br = new BufferedReader(archivo);
String linea = br.readLine();
String bitacoraCompleta = "";

while (linea != null){


bitacoraCompleta = bitacoraCompleta + linea + "\n";
linea = br.readLine();
}
br.close();
archivo.close();
et1.setText(bitacoraCompleta);
} catch (IOException e){
}
}
}

private boolean ArchivoExiste(String archivos [], String NombreArchivo){


for (int i = 0; i < archivos.length; i++)
if(NombreArchivo.equals(archivos[i]))
return true;
return false;
}
//Metodo para el boton GUARDAR
public void Guardar (View view){
try{
OutputStreamWriter archivo = new
OutputStreamWriter(openFileOutput("bitacora.txt", Activity.MODE_PRIVATE));
archivo.write(et1.getText().toString());
archivo.flush();
archivo.close();
} catch (IOException e){

}
Toast.makeText(this, "Bitacora guardada correctamente",
Toast.LENGTH_LONG).show();
finish();
}
}

ALMACENAMIENTOS DE DATOS. SD (Cap.29)

package com.example.sd;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MainActivity extends AppCompatActivity {

private EditText et_nombre, et_contenido;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et_nombre = (EditText) findViewById(R.id.txt_nombre);


et_contenido = (EditText) findViewById(R.id.txt_contenido);
}

//metodo para el Boton Guardar


public void Guardar(View view){
String nombre = et_nombre.getText().toString();
String contenido = et_contenido.getText().toString();

try {
File tarjetaSD = Environment.getExternalStorageDirectory();
Toast.makeText(this, tarjetaSD.getPath(), Toast.LENGTH_LONG).show();
File rutaArchivo = new File(tarjetaSD.getPath(), nombre);
OutputStreamWriter crearArchivo = new
OutputStreamWriter(openFileOutput(nombre, Activity.MODE_PRIVATE));

crearArchivo.write(contenido);
crearArchivo.flush();
crearArchivo.close();

Toast.makeText(this, "Guardado correctamente",


Toast.LENGTH_LONG).show();
et_nombre.setText("");
et_contenido.setText("");
} catch (IOException e){
Toast.makeText(this, "No se pudo guardar la informacion",
Toast.LENGTH_LONG).show();
}
}

//metodo boton CONSLTAR


public void Consultar (View view){
String nombre = et_nombre.getText().toString();

try {
File targetaSD = Environment.getExternalStorageDirectory();
File rutaArchivo = new File(targetaSD.getPath(), nombre);
InputStreamReader abrirArchivo = new
InputStreamReader(openFileInput(nombre));

BufferedReader leerArchivo = new BufferedReader(abrirArchivo);


String linea = leerArchivo.readLine();
String contenidoCompleto = "";

while (linea != null){


contenidoCompleto = contenidoCompleto + linea + "\n";
linea = leerArchivo.readLine();
}

leerArchivo.close();
abrirArchivo.close();
et_contenido.setText(contenidoCompleto);
} catch (IOException e){
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
}
}
}

BASE DE DATOS EN ANDROID

Una base de datos, es un conjunto de datos pertenecientes a un mismo contexto, y


almacenados sistemáticamente para su posterior uso.
Existen programas denominados sistemas gestores de bases de datos (SGBD), que
permiten almacenar y posteriormente acceder a los datos de forma rápida y
estructurada.

En Android, podremos encontrar una herramienta poderosa para el almacenamiento y


consulta mediante bases de datos, conocida como:

"SQLite"
SQLite, es un motor de bases de datos muy popular en la actualidad por ofrecer
características tan interesantes como su pequeño tamaño, no necesitar servidor,
precisar poca configuración, ser transaccional y sobre todo ser de código libre.

En Android, la forma típica para crear, actualizar, y conectar con una base de datos
SQLite será a través de una clase auxiliar llamada SQLiteOpenHelper.

La clase SQLiteOpenHelper tiene tan sólo un constructor, que normalmente no


necesitaremos sobrescribir, y dos métodos abstractos, onCreate() y on Upgrade(), que
deberemos personalizar con el código necesario para crear nuestra base de datos y
para actualizar su estructura respectivamente.

*Ir a MainActiviti>BtnDerecho >New>Java Class>Dar Nombre (ver comienzo de capítulo 30)


Parte lógica del boton REGISTRAR (Cap.30)

public void Registrar(View view) {


AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion",
null, 1);
SQLiteDatabase BaseDeDatos = admin.getWritableDatabase();

String codigo = et_codigo.getText().toString();


String descripcion = et_descripcion.getText().toString();
String precio = et_precio.getText().toString();

if (!codigo.isEmpty() && !descripcion.isEmpty() && !precio.isEmpty()) {


ContentValues registro = new ContentValues();

registro.put("codigo", codigo);
registro.put("descripcion", descripcion);
registro.put("precio", precio);

BaseDeDatos.insert("articulos", null, registro);


BaseDeDatos.close();

et_codigo.setText("");
et_descripcion.setText("");
et_precio.setText("");

Toast.makeText(this, "Registro Exitoso", Toast.LENGTH_SHORT).show();


} else {
Toast.makeText(this, "Debes llenar todos los campos",
Toast.LENGTH_SHORT).show();

}
}
Parte lógica del botón BUSCAR (Cap.31)
public void Buscar(View view) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion",
null, 1);
SQLiteDatabase BaseDeDatabase = admin.getWritableDatabase();

String codigo = et_codigo.getText().toString();

if (!codigo.isEmpty()) {
Cursor fila = BaseDeDatabase.rawQuery
("select descripcion, precio from articulos where codigo =" +
codigo,null);

if (fila.moveToFirst()) {
et_descripcion.setText(fila.getString(0));
et_precio.setText(fila.getString(1));
BaseDeDatabase.close();
} else {
Toast.makeText(this, "No existe el articulo",
Toast.LENGTH_LONG).show();
BaseDeDatabase.close();
}

} else {
Toast.makeText(this, "Debes introducir el código del articulo",
Toast.LENGTH_SHORT).show();
}
}

Parte lógica del botón MODIFICAR (Cap.31)


public void Modificar (View view) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion",
null, 1);
SQLiteDatabase BaseDatabase = admin.getWritableDatabase();

String codigo = et_codigo.getText().toString();


String descripcion = et_descripcion.getText().toString();
String precio = et_precio.getText().toString();

if(!codigo.isEmpty() && !descripcion.isEmpty() && !precio.isEmpty()) {

ContentValues registro = new ContentValues();


registro.put("codigo", codigo);
registro.put("descripcion", descripcion);
registro.put("precio", precio);

int cantidad = BaseDatabase.update("articulos", registro, "codigo=" +


codigo, null);
BaseDatabase.close();

if (cantidad == 1){
Toast.makeText(this, "Articulo modificado correctamente",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "El articulo no existe",
Toast.LENGTH_SHORT).show();
}

} else {
Toast.makeText(this, "Debes llenar todos los campos",
Toast.LENGTH_SHORT).show();
}
}
Parte lógica del botón ELIMINAR (Cap.32)
public void Eliminar(View view) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper
(this, "administracion", null, 1);
SQLiteDatabase BaseDatabase = admin.getWritableDatabase();

String codigo = et_codigo.getText().toString();

if (!codigo.isEmpty()) {
int cantidad = BaseDatabase.delete("articulos", "codigo=" + codigo,
null);
BaseDatabase.close();

et_codigo.setText("");
et_descripcion.setText("");
et_precio.setText("");

if (cantidad == 1) {
Toast.makeText(this, "Articulo eliminado exitosamente",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "El articulo no existe",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Debes de introducir el código del articulo",
Toast.LENGTH_SHORT).show();
}
}
}

Diseño lineal (LinearLayout) (Cap.34)

LinearLayout es un grupo de vista que alinea todos los campos secundarios en una única
dirección, tanto de manera vertical u horizontal.

Se puede específicar la dirección del diseño con el atributo orientation.

LinearLayout es uno de los diseños más simples y más empleado. Simplemente


establece los componentes visuales uno junto al otro, ya sea horizontal o verticalmente.
Diseño de tabla (TableLayout) (cap.35)
filas y columnas. TableLayout contiene un conjunto
TableLayout permite agrupar a los componentes en de componentes de tipo TableRow
que es el que agrupa componentes visuales por cada fila.

A diferencia de un LinearLayout, con TableLayout se añade una nueva dimensión con lo


cual se pueden colocar nuevos componentes tanto verticalmente, así como
horizontalmente, en forma de tabla.

TableLayout no tiene, una estructura de tabla. En realidad, TableLayout es una


especialización de LinearLayout vertical, pero con un comportamiento particularizado.

Sin embargo, hay una vista específica que sólo se puede utilizar en TableLayout y que es
la que aporta la funcionalidad necesaria para crear la tabla, es decir: TableRow.

TableRow es, a su vez, otra especialización de LinearLayout.


Esta vez de un LinearLayout horizontal. Así que resulta evi dente que, lo que se nos
muestra como una estructura de tabla, es en realidad un grupo de LinearLayout
horizontales dentro de un LinearLayout vertical.

FrameLayout-Diseño de marco (Cap.36)

FrameLayout es el más simple de todos los layouts en Android.


FrameLayout no realiza ninguna distribución de las vistas, simplemente las coloca unas
encima de otras.
Esto le evita tener que relacionar los tamaños de unas vistas con las demás, por lo que
ahorra recorridos del árbol de vistas , tardando menos en mostrar su contenido.
Por ello, suele utilizarse para mostrar un único control en su interior, a modo de
contenedor sencillo para un sólo elemento sustituible, por ejemplo una imagen.

 Codigo Para hacer aparecer una imagen – Cap. 36

public class MainActivity extends AppCompatActivity {

private ImageView ivi;


private Button boton1;
@Override

protected void onCreate (Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ivi = (ImageView) findViewById(R.id.imageView);


boton1 = (Button) findViewById(R.id.button);

public void Ocultar (View view) {


botonl.setVisibility(View. INVISIBLE);
ivi.setVisibility(View.VISIBLE);
}
}

ScrollView-Vista de Desplazamiento (Cap.37)

El control ScrollView permite colocar una cantidad de controles y elementos visuales,


que superen el campo de visión del dispositivo Android que el usuario este utilizando.
De esta manera, El usuario podrá desplazar con el dedo en la interfaz de la aplicación
creada.

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void Seleccion (View view){


switch (view.getId()){
case R.id.banana:
Toast.makeText(this, "Esta es una banana",
Toast.LENGTH_SHORT).show();
break;
case R.id.cerezas:
Toast.makeText(this, "Esta es una cereza",
Toast.LENGTH_SHORT).show();
break;
case R.id.frenbuesas:
Toast.makeText(this, "Esta es una franbeza",
Toast.LENGTH_SHORT).show();
break;
case R.id.frutilla:
Toast.makeText(this, "Esta es una Frutilla",
Toast.LENGTH_SHORT).show();
break;
case R.id.kiwi:
Toast.makeText(this, "Esta es una Kiwi",
Toast.LENGTH_SHORT).show();
break;
case R.id.mango:
Toast.makeText(this, "Esta es una Mango",
Toast.LENGTH_SHORT).show();
break;
case R.id.manzana:
Toast.makeText(this, "Esta es una Manzana",
Toast.LENGTH_SHORT).show();
break;
case R.id.melon:
Toast.makeText(this, "Esta es un Malon",
Toast.LENGTH_SHORT).show();
break;
case R.id.naranja:
Toast.makeText(this, "Esta es una Naranja",
Toast.LENGTH_SHORT).show();
break;

}
}
}
Cambiar Icono, Colores y Nmbre de una aplicacion (Cap.38)
En el Main
package com.example.lazoperros;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//poner el icono en el action Bar


getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.mipmap.ic_launcher);

}
}
En el strings.xml
<resources>
<string name="app_name">Bienestar Canino</string>
</resources>

También podría gustarte