Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Azamar Android
Azamar Android
MÉXICO
TIC`S
CARRERA:
MATERIA:
Desarrollo de Aplicaciones Android
TEMA/UNID
UNIDAD 1
ACTIVIDAD:
Practica 1
ESTUDIANTE(S)-NO.
ORTIZ LAMA JESUS IVAN
SEMESTRE:
CATEDRÁTIC
M. en RI. Azamar Palma Ivan
INDICE DE ILUSTRACIONES
1. Ilustración 1. Pantalla principal Android Studio
2. Ilustración 2. Ventana principal de Actividades
3. Ilustración 3. Configuración Proyectó Android Studio
4. Ilustración 4. Estructura de carpetas y archivos para la aplicación hola
mundo
5. Ilustración 5. Código por Default para la iniciación de nuestra aplicación
6. Ilustración 6. Código para dar formato horizontal o verticalmente.
7. Ilustración 7. Código para dar formato a nuestro botón clic.
8. Ilustración 8. Botón clic de nuestra pantalla principal
9. Ilustración 9. Over ride para dar el comportamiento de nuestro botón
10. Ilustración 10. Over ride para dar el comportamiento a nuestro hola mundo.
11. Ilustración 11. Compilación de Android y nuestra App Hola Mundo
12. Ilustración 12. Inicialización de un nuevo proyecto
13. Ilustración 13. Creación de Actividades dentro del proyecto
14. Ilustración 14. Código para dar orientación a nuestro menú principal
15. Ilustración 15. Text View para Usuario.
16. Ilustración 16. Diseño de la cajita para ingreso del texto
17. Ilustración 17. Diseño Cuadro de texto.
18. Ilustración 18. Diseño de las cajas de texto
19. Ilustración 19. Diseño de las cajas de texto
20. Ilustración 20. Código para edición de texto dentro de la app
21. Ilustración 21. Código para botones de acceso, usuario y contraseña
22. Ilustración 22. Demostración de Funcionamiento de la aplicación de LOGIN
23. Ilustración 23. Colores de Drawable.
24. Ilustración 24. Colocación Imágenes Drawable.
25. Ilustración 25. Menú Drawer
26. Ilustración 26. Ítems de Inicio.
27. Ilustración 27. Segundo fragmento dentro de la App
28. Ilustración 28. Diseño botón flotante.
29. Ilustración 29. Colocación Imagen en Galería
30. Ilustración 30. Barra de menú lateral.
31. Ilustración 31. Mensaje flotante java.
2
32. Ilustración 32. Funcionamiento Drawer
33. Ilustración 33. Creación App menús.
34. Ilustración 34. Diseño Menú principal.
35. Ilustración 35. Diseño Menús secundarios.
36. Ilustración 36. Funcionamiento Menús.
37. Ilustración 37. Diseño e implementación 2.
38. Ilustración 38. Diseño submenú.
39. Ilustración 39. Funcionamiento selección de submenús.
40. Ilustración 40. Diseño menú 3.
41. Ilustración 41. Implementación de submenús al menú 3.
42. Ilustración 42. Diseño Submenús Casilla.
43. Ilustración 43. Funcionamiento submenús casilla.
44. Ilustración 44. Diseño Menú 4
45. Ilustración 45. Implementación método para acción del botón
46. Ilustración 46. Funcionamiento menú contexto.
3
Marco Teórico.
4
CODIGO FUENTE APLICACIÓN “HOLA MUNDO”
Activity_Main.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".MainActivity"
tools:ignore="NamespaceTypo">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/bt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/click" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity
package com.example.holamundo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
5
}
}
PASOS A SEGUIR.
Como primera instancia se procederá a abrir nuestro programa Android Studio el
cual nos permitirá la creación de nuestra aplicación como se muestra a
continuación.
6
Una vez seleccionada procederemos a colocar el nombre del proyecto, la
ubicación donde se guardará el proyecto y la versión API que se utilizará.
Esto garantiza que nuestra aplicación pueda ejecutarse en casi todos los
dispositivos.
7
Ilustración 4 Estructura de carpetas y archivos para
la aplicación hola mundo
Una vez teniendo en cuenta lo que significa cada componente de Android studio se
procederá a nuestro código el cual Android nos los da por default como se muestra
a continuación.
8
Una vez teniendo y dado la orientación se procederá a realizar nuestro botón el
cual quedará de la siguiente manera dentro de nuestro mismo layout el cual le
daremos la instrucción para pasar a nuestra siguiente pantalla.
Ilustración 7 Código para dar formato a nuestro botón el cual llevara por
nombre clic.
Quedando
nuestro botón de la siguiente manera.
Una vez
teniendo
nuestro Layout y nuestro botón se procederá a dar instrucción a nuestro botón en
nuestro apartado de Main Activity donde se le dará el nombre y la función para que
este pueda dar la instrucción al darse clic y funcione como se muestra a
continuación.
En este se colocó un override el cual nos Indica la sobre escritura de un método.
Un creando una interface para la implementación de un objeto en una clase, esta
nos permitirá sobre escribir el comportamiento, funcionalidad de nuestro método
9
en la clase que se implementó en este caso nuestro botón como se muestra a
continuación.
Una vez realizado se procedió a la colocación de otro @Override el cual dará al igual
que el anterior el comportamiento para nuestro mensaje de HOLA MUNDO al darle
clic como se muestra a continuación.
10
CODIGO FUENTE APLICACIÓN “LOGGIN”
Activity_Main.
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:layout_editor_absoluteX="290dp"
tools:layout_editor_absoluteY="232dp"
android:layout_marginTop="150px">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/texto"
android:fontFamily="sans-serif-black"
android:textSize="40px"
android:text="Ingrese el usuario"
android:textAlignment="center"
android:textColor="@color/design_default_color_primary_dark"></TextView>
<EditText
android:id="@+id/cajita1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/design_default_color_primary_dark"></EditText>
<TextView
11
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/texto2"
android:fontFamily="sans-serif-black"
android:textSize="40px"
android:text="Ingrese la contraseña"
android:textAlignment="center"
android:textColor="@color/design_default_color_primary_dark"></TextView>
<EditText
android:id="@+id/cajita2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/design_default_color_primary_dark"></EditText>
<Button
android:id="@+id/botonAcceso"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="200px"
android:fontFamily="sans-serif-black"
android:text="ACCESO"
android:textAlignment="center"
android:textSize="50px"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Activity_Main2
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regresar al login"
android:textSize="30px"
android:textColor="@color/cardview_light_background"
android:id="@+id/botonRegreso"></Button>
</LinearLayout>
12
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity
package com.example.login;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.pm.PackageInfoCompat;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
MainActivity2
13
package com.example.login;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
PASOS A SEGUIR.
Como primera instancia guiándonos con nuestro ejemplo anterior se procederá a
abrir un nuevo proyecto el cual llevará por nombre LOGIN.
Este nos permitirá la realización de un menú donde nos permita ingresar un
nombre de usuario y una contraseña dándonos un mensaje al entrar de bienvenida
como se mostrará a continuación.
Una vez realizado nuestro proyecto se procederá a crear dentro del mismo una
nueva actividad la cual nos permitirá el desplazamiento entre una pantalla y otra al
acceder como se muestra a continuación.
14
Ilustración 13 Creación de Actividades dentro de nuestro proyecto
Una vez creadas procederemos a nuestro código el cual como primer paso se
procederá de nueva forma a darle altura y anchura nuestra pantalla, así como los
pixeles a mostrarse dentro del mismo como se muestra a continuación.
Una vez realizado se procederá a la creación de nuestro Text View el cual nos permite
mostrar al usuario un texto, lo que en algunas ocasiones denominamos etiqueta en
este caso de nuestro primer apartado el cual será el nombre de usuario se muestra a
continuación.
15
Una vez realizado nuestro Text View se procederá a la creación de nuestra cajita
donde se encontrará nuestro texto de usuario para agregar los datos y/o escribirlos.
16
Así mismo se agregó un Botón de acceso el cual se realizó de la misma forma en
que se crearon los text view quedando de la siguiente manera.
18
CODIGO FUENTE APLICACIÓN “NAVIGATION DRAWER”.
COLORS
NAV_HEADER_MAIN
19
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/imageView"
android:layout_width="300px"
android:layout_height="200px"
android:contentDescription="@string/nav_header_desc"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:src="@drawable/avengers"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="Jesus Ivan Ortiz Lama."
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="jesus96unam@gmail.com.mx" />
</LinearLayout>
ACTIVITY_MAIN_DRAWER.
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_menu_camera"
android:title="INICIO" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:title="GALERIA" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="MULTIMEDIA" />
</group>
</menu>
APP_BAR_MAIN
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
20
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.Drwable.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/black"
app:popupTheme="@style/Theme.Drwable.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_marginBottom="16dp"
android:background="@color/gainsboro"
app:srcCompat="@android:drawable/btn_star_big_on" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
FRAGMENT_HOME
<TextView
android:id="@+id/text_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="@drawable/avengers2"
android:text="SEGUNDO FRAGMENTO"
android:textColor="@color/white"
21
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
FRAGMENT_GALLERY
<TextView
android:id="@+id/text_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:text="PRIMER FRAGMENTO"
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/avengers"
tools:ignore="MissingConstraints"></ImageView>
</androidx.constraintlayout.widget.ConstraintLayout>
FRAGMENT_SLIDESHOW
<TextView
22
android:id="@+id/text_slideshow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:textAlignment="center"
android:textSize="20sp"
android:text="TERCER FRAGMENTO"
android:background="@color/black"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
DRAWER
<item
android:id="@+id/action_2"
android:orderInCategory="100"
android:title="Settings 2"
app:showAsAction="collapseActionView" />
<item
android:id="@+id/action_3"
android:orderInCategory="100"
android:title="Settings 4"
app:showAsAction="withText" />
<item
android:id="@+id/action_4"
android:orderInCategory="100"
android:title="Settings 3"
app:showAsAction="ifRoom" />
</menu>
PASOS A SEGUIR”.
23
Como primera instancia se procederá a la creación de un nuevo proyecto
seleccionando nuestra plantilla de Navigation Drawer Activity como se muestra a
continuación.
Una vez
seleccionada se procederá a darle nombre a nuestra actividad una vez realizado nos
posicionaremos a nuestro código.
Como primer paso colocaremos los colores a darle a nuestra aplicación como se
muestra a continuación.
24
Ilustración 24 Imágenes Drawable
25
Una vez realizado se procederá a la edición de nuestro segundo fragmento el cual le
daremos como principal una imagen de fondo quedando de la siguiente manera.
Dándole un Android:text el cual nos indicara que es nuestro segundo fragmento
dentro de nuestro drawer.
Así mismo dentro del mismo se colocó un Botón flotante el cual se puede editar dentro
de nuestro apartado App_bar_main como se muestra a continuación colocándole
una estrella por Default.
26
Ilustración 29 Galería
27
Por último, se agregó dentro de nuestro botón flotante un mensaje el cual nos
indicara que es una prueba dentro de nuestro apartado dándole un setAction el cual
nos dará la acción del mensaje como se muestra.
A
continuación, se muestra el funcionamiento de nuestra Activity Drawer .
28
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textColor="@color/black"
android:textSize="60px"
android:gravity="center"
android:textAlignment="center"
android:text="Tipos de Menú Ejercicio 1"
></TextView>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Siguiente"
android:textAlignment="center"
android:textSize="50px"
android:onClick="siguiente"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MAIN_AVTIVITY
ackage com.example.menus;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
29
public class MainActivity extends AppCompatActivity {
Button button1_S;
TextView textview1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview1= findViewById(R.id.textview);
button1_S= findViewById(R.id.btn1);
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
item1.setIcon(R.drawable.ic_launcher_foreground);
item2.setIcon(R.drawable.ic_launcher_background);
return true;
}
SUB_MENU
30
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textColor="@color/black"
android:textSize="60px"
android:gravity="center"
android:textAlignment="center"
android:text="Tipos de Menú Ejercicio 2"
></TextView>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Siguiente"
android:textAlignment="center"
android:textSize="50px"
android:onClick="siguiente"></Button>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regresar"
android:textAlignment="center"
android:textSize="50px"
android:onClick="regresar"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MENU2
package com.example.menus;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
31
import androidx.appcompat.app.AppCompatActivity;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_submenu);
textview1=(TextView) findViewById(R.id.textview);
button2_S=(Button) findViewById(R.id.btn2);
button1_R=(Button) findViewById(R.id.btn3);
}
ACTIVITY_CASILLA
32
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textColor="@color/black"
android:textSize="60px"
android:gravity="center"
android:textAlignment="center"
android:text="Tipos de Menú Ejercicio 3"
></TextView>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Siguiente"
android:textAlignment="center"
android:textSize="50px"
android:onClick="siguiente"></Button>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regresar"
android:textAlignment="center"
android:textSize="50px"
android:onClick="regresar"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MENU_CASILLA
package com.example.menus;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
33
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
SubMenu sub1,sub2;
MenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9,item10;
boolean[] check={false,false,false,false,false,false,false,false,false,false};
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_casilla);
textview1=(TextView) findViewById(R.id.textview);
button2_S=(Button) findViewById(R.id.btn2);
button1_R=(Button) findViewById(R.id.btn3);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
sub1= menu.addSubMenu(0,1,1,"Menu 1");
sub1.setHeaderIcon(R.drawable.ic_launcher_foreground);
sub2= menu.addSubMenu(0,2,2,"Menu 2");
sub2.setHeaderIcon(R.drawable.ic_launcher_foreground);
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
item1.setCheckable(true).setChecked(check[0]);
item2.setCheckable(true).setChecked(check[1]);
item3.setCheckable(true).setChecked(check[2]);
item4.setCheckable(true).setChecked(check[3]);
item5.setCheckable(true).setChecked(check[4]);
item6.setCheckable(true).setChecked(check[5]);
item7.setCheckable(true).setChecked(check[6]);
34
item8.setCheckable(true).setChecked(check[7]);
item9.setCheckable(true).setChecked(check[8]);
item10.setCheckable(true).setChecked(check[9]);
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
}else if (check[id-3]==true){
textview1.append("\n Se desactivo casilla de " + (id-2));
check[id-3] = false;
}
}
return true;
ACTIVITY_CONTEXTO
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
>
35
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textviewAccion"
android:textColor="@color/black"
android:textSize="80px"
android:gravity="center"
android:textAlignment="center"
android:text="Oprime"
></TextView>
<Button
android:id="@+id/btnAccion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pulsame"
android:textAlignment="center"
android:textSize="60px"
android:backgroundTint="@color/black"
android:textColor="@color/white"
></Button>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textColor="@color/black"
android:textSize="60px"
android:gravity="center"
android:textAlignment="center"
android:text="Tipos de Menú Ejercicio 4"
></TextView
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regresar"
android:textAlignment="center"
android:textSize="50px"
android:onClick="regresar"></Button>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inicio"
android:textAlignment="center"
android:textSize="50px"
android:onClick="siguiente"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
36
MENU_CONTEXTO
package com.example.menus;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contexto);
textview1=(TextView) findViewById(R.id.textview);
textviewAc=(TextView) findViewById(R.id.textviewAccion);
textviewAc.setOnCreateContextMenuListener(this);
button2_S=(Button) findViewById(R.id.btn2);
button1_R=(Button) findViewById(R.id.btn3);
buttonAc=(Button) findViewById(R.id.btnAccion);
buttonAc.setOnCreateContextMenuListener(this);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo
info) {
super.onCreateContextMenu(menu, v, info);
if(v.getId()==R.id.textviewAccion){
menu.setHeaderTitle("Menú texto");
menu.setHeaderIcon(R.drawable.ic_launcher_foreground);
menu.add(0,1,1,"item 1");
menu.add(0,2,2,"ítem 2");
menu.add(0,3,3,"ítem 3"); }
if(v.getId()==R.id.btnAccion){
//Con ayuda del boton mustra la ventana de la lista de los menús.
menu.setHeaderTitle("Menú botón");
menu.setHeaderIcon(R.drawable.ic_launcher_background);
menu.add(0,4,4,"ítem 4");
menu.add(0,5,5,"item 5");
37
menu.add(0,6,6,"ítem 6");
}
}
@Override
public boolean onContextItemSelected(MenuItem item){
int id=item.getItemId();
textview1.append(" Seleccionaste el item "+id);
return true; }
PASOS A SEGUIR
Como primera instancia y como se ha realizado en las practicas anteriores se
procedió a crear una nueva Activity la cual llevara por nombre Menús como se
muestra a continuación.
38
Así mismo nuestro Text View mostrándonos el nombre de nuestro ejercicio, y
añadiéndole un botón para pasar de una clase a otra como se muestra a
continuación.
Dando como
resultado los siguientes menús en funcionamiento.
39
Ilustración 36 Funcionamiento Menús Principal.
SUBMENUS
Como siguiente continuaremos dentro de nuestra app principal llamada MENUS
dándole una nueva actividad la cual será un Activity llamado submenús.
Una vez realizado se procederá a colocar nuestro código principal añadiendo ítems
a un submenú de la misma forma que a un menú. procurando que nuestras id de los
ítems realizados de los distintos submenús sean únicos.
Se crearon dos submenús, cada uno con cuatro ítems. Al clicar un ítem, el id de este
se escribirá dentro de un Text View. Como se muestra a continuación.
40
Ilustración 38 Diseño y funcionamiento de selección de submenú
41
Ilustración 39 Diseño y funcionamiento de selección de submenús
MENU CON CASILLA
Como siguiente se mantendrá nuestro diseño de Menú ahora agregando una nueva
Activity la cual nos permitirá posicionarnos en un submenú el cual dará opciones a
seleccionar con casillas como se explicará a continuación.
Una vez Teniendo nuestros Submenús se desarrollará de la misma manera que las
pantallas anteriores nuestro tercer menú principal como se muestra a continuación
dándole los mismos parámetros verticales como de anchura.
42
A si mismo se le coloco un setCheckable el agua arrojara un resultado true
permitiéndonos la selección de la casilla mostrándonos la selección dentro de la
pantalla de inicio.
Dándonos como resultado la selección de casillas mostrándonos la selección en nuestra
pantalla principal del menú 3.
43
MENU DE CONTEXTO
El menú de contexto se muestra en una ventana flotante cuando se realiza una
pulsación larga (de unos segundos) sobre un objeto View. Cada objeto View puede
tener su propio menú con distintas opciones.
Para este último menú se utilizará la misma App creando una nueva actividad dentro
de esta se creará un 4 menú donde se colocará un objeto View el cual contendrá un
menú de contexto que usara el método setOnCreateContextMenuListener() el cual
nos permitirá que al mantener pulsado nuestro botón principal nos dará un contexto
donde se definen los contenidos del menú, añadiendo ítems ejecutando el método
onContextltemSelected que contendrá las instrucciones a ejecutar como se muestra
a continuación.
44
Una vez realizado se procedió a realizar nuestro Metodo OnCreatetextMenu para
realizar la acción de nuestro botón mostrándonos las opciones de los ítems a través
de una pulsación prolongada.
Colocándole un if el cual dará la acción de mostrarnos un mensaje al seleccionar un
ítem como se muestra a continuación.
45
Ilustración 46 Funcionamiento Menú contexto
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
46
android:gravity="center"
android:orientation="vertical">
<TextView
android:textColor="@color/black"
android:textSize="40px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Dialogo Simple"
android:textAlignment="center"
android:textStyle="bold"/>
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Click para Mostrar Dialogo"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click para Ejercicio 2"
android:onClick="login2"
android:id="@+id/btn2"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MAIN_ACTIVITY
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.activity_main);
Button boton=(Button) findViewById(R.id.btn1);
boton.setOnClickListener(this::onClick);
btn2=(Button) findViewById(R.id.btn2);
}
@Override
47
public void onClick (View arg0) {showDialog(0); }
@Override
protected Dialog onCreateDialog(int id){
Dialog dialogo=null;
if(id==0){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder=builder.setIcon(R.drawable.ic_launcher_foreground);
builder=builder.setTitle("Este es el aspecto de nuestro Dialogo");
dialogo=builder.create();
}
return dialogo;
}
public void login2(View view){
Intent regresar = new Intent( this,Dialog.class);
startActivity(regresar);
}
}
DIALOGOS DE PROGRESO
MAIN_ACTIVITY
package com.example.dialogoprogreso;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.Bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progreso= new ProgressDialog(this);
progreso.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progreso.setIcon(R.drawable.ic_launcher_background);
progreso.setTitle("BARRA DE PROGRESO");
progreso.show();
}
}
DIALOGOS PERSONALIZADOS.
ACTIVITY_MAIN
<?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"
48
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HOLA UNIVERSO!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bt1"
android:text="VENTANA DIALOGO PERSONALIZADO"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
DIALOGO.XML
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/design_default_color_primary"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textViewDialogo"
android:textColor="@color/white"
android:textSize="18sp"
android:text="IDENTIFICATE PARA COMENZAR"></TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textViewDialogo2"
android:textColor="@color/white"
android:textSize="18sp"
android:text="USUARIO"></TextView>
<EditText
android:layout_width="match_parent"
49
android:layout_height="wrap_content"
android:inputType="text"
android:id="@+id/Editext1"
></EditText>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textViewDialogo3"
android:textColor="@color/white"
android:textSize="18sp"
android:text="CONTRASEÑA"></TextView>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:id="@+id/Editext2"
></EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ACEPTAR"
android:id="@+id/b1"></Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MAIN_ACTIVITY
package com.example.dialogoperzonalizado;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@Override
50
public void onClick(View v) {
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id){
Dialog dialogo=new Dialog(this);
Window w=dialogo.getWindow();
int flag= WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
w.setFlags(flag,flag);
dialogo.setTitle("Dialogo Basico");
dialogo.setContentView(R.layout.dialogo);
e1=(EditText)findViewById(R.id.Editext1);
e2=(EditText)findViewById(R.id.Editext2);
b1=(Button)findViewById(R.id.bt1);
b1.setOnClickListener(this);
return dialogo;
}
class AceptarListener implements View.OnClickListener{
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "HOLA", Toast.LENGTH_SHORT).show();
}
}
}
51
Ilustración 47 Creación Nueva Activity
Como primer
paso para mostrar nuestro diálogo invocaremos el método show Dialogó de nuestra
clase Activity. Esto hará que se ejecute nuestro método onCreateDialog de la clase
Activity que deberemos sobrescribir para construir nuestro diálogo, que será un
objeto de tipo Dialogó.
52
Ilustración 49 Creación para darle tarea Botón Clic
Así mismo
se le dio el método el cual definirá nuestro icono y el texto a mostrarse en el Dialogo
como se muestra a continuación.
53