Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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;
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//Este metodo realiza la el promedio
//esto es Java
}
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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();
}
}
}
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//Parte logica o Metodo del Boton
public void Calcular (View view){
String valor1_String = et01.getText().toString();
String valor2_String = et02.getText().toString();
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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
<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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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:
StartActivity (i);
App>new>Activity>Empty Activity Al presionar nos abre una nueva ventana Activity2 o El nombre
que querramos.
MainActivity
Activity2
MainActivity
@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
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
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.
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Ejercicio con SharedPreferences : Agenda (Cap.27)
package com.example.sharedpreferencesagenda;
import androidx.appcompat.app.AppCompatActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//Metodo para el boton GUARDAR
public void Guardar (View view){
String nombre = et_nombre.getText().toString();
String datos = et_datos.getText().toString();
if (datos.length() == 0){
Toast.makeText(this, "No se encontro ningun registro",
Toast.LENGTH_SHORT).show();
} else {
et_datos.setText(datos);
}
}
}
(/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.
package com.example.bitacora;
import androidx.appcompat.app.AppCompatActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Toast.makeText(this, "Bitacora guardada correctamente",
Toast.LENGTH_LONG).show();
finish();
}
}
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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();
try {
File targetaSD = Environment.getExternalStorageDirectory();
File rutaArchivo = new File(targetaSD.getPath(), nombre);
InputStreamReader abrirArchivo = new
InputStreamReader(openFileInput(nombre));
leerArchivo.close();
abrirArchivo.close();
et_contenido.setText(contenidoCompleto);
} catch (IOException e){
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
}
}
}
"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.
registro.put("codigo", codigo);
registro.put("descripcion", descripcion);
registro.put("precio", precio);
et_codigo.setText("");
et_descripcion.setText("");
et_precio.setText("");
}
}
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();
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();
}
}
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();
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();
}
}
}
LinearLayout es un grupo de vista que alinea todos los campos secundarios en una única
dirección, tanto de manera vertical u horizontal.
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.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
}
}
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
En el strings.xml
<resources>
<string name="app_name">Bienestar Canino</string>
</resources>