Beruflich Dokumente
Kultur Dokumente
ACTIVIDAD:
Práctica #2: Desarrollo de aplicaciones en Android
PRESENTADO POR:
Jorge Henry Cuenca Bejar
Contenido:
Dar siguiente.
Seleccionar los componentes que se desean instalar. En este caso es necesario instalar
Android Virtual Device.
Acción al presionar el botón “Enviar Pedido”: se muestra una ventana para que el
usuario confirme el pedido. Si presiona “Cancelar” se regresa a la ventana anterior. Si se
presiona “Enviar” se confirma el pedido con un mensaje.
Se ha configurado el campo “Cantidad Requerida” para que sólo acepte números positivos
mayores a cero.
Pantalla de Pedido
Pantalla de Confirmación
4. Detalle código:
37. return;
38. }
39.
40. //enviar datos al otro formulario
41. String strFarmaPrincipal = "Calle de la Rosa Nro. 28 (Farmacia Principal)";
42. String strFarmaSecundaria = "Calle Alcazabilla Nro. 3 (Farmacia Segundaria)";
43.
44. String strMedicamentoMensaje = etCantidad.getText().toString().trim() + " del
" + spTipoMedimanteo.getSelectedItem().toString() + "
" + etNombreMedicamento.getText().toString().trim();
45.
46. String strDireccion = "";
47. strDireccion += chPrincipal.isChecked() ? strFarmaPrincipal : "";
48. strDireccion += chSecundaria.isChecked() ? (strDireccion.isEmpty() ? strFarmaS
ecundaria : " y para la situada en " + strFarmaSecundaria) : "";
49. strDireccion = "Para la farmacia situada en " + strDireccion;
50.
51. String strDistribuidor = "";
52. strDistribuidor = rbCofarma.isChecked() ? rbCofarma.getText().toString() : str
Distribuidor;
53. strDistribuidor = rbEmpseoha.isChecked() ? rbEmpseoha.getText().toString() : s
trDistribuidor;
54. strDistribuidor = rbComefar.isChecked() ? rbComefar.getText().toString() : str
Distribuidor;
55. strDistribuidor = "Pedido al distribuidor \n" + strDistribuidor;
56.
57. //crear un Intent para enviar información
58. Intent intentConfirmacion = new Intent(this, ConfirmacionActivity.class);
59.
60. //enviar la informacion con putExtra
61. intentConfirmacion.putExtra("Medicamento", strMedicamentoMensaje);
62. intentConfirmacion.putExtra("Direccion", strDireccion);
63. intentConfirmacion.putExtra("Distribuidor", strDistribuidor);
64.
65. startActivity(intentConfirmacion);
66. }
Pedido.java
1. package com.jorgecuenca.farmacia;
2.
3. import android.content.DialogInterface;
4. import android.content.Intent;
5. import android.hardware.display.DisplayManager;
6. import android.support.v7.app.AlertDialog;
7. import android.support.v7.app.AppCompatActivity;
8. import android.os.Bundle;
9. import android.view.View;
10. import android.widget.ArrayAdapter;
11. import android.widget.Button;
12. import android.widget.CheckBox;
13. import android.widget.EditText;
14. import android.widget.RadioButton;
15. import android.widget.Spinner;
16. import android.widget.TextView;
17.
18. import javax.xml.transform.stream.StreamResult;
19.
20. public class Pedido extends AppCompatActivity {
21.
22. //crear una varibale para almacenar los datos del combobox Tipo Medicamento
23. Spinner opciones;
24.
25. //public final static String EXTRA_MESSAGE = "com.jorgecuenca.MESSAGE";
26.
27. //variables para obtener los datos del formulario
28. EditText etNombreMedicamento, etCantidad;
29. Spinner spTipoMedimanteo;
30. RadioButton rbCofarma, rbEmpseoha, rbComefar;
31. CheckBox chPrincipal, chSecundaria;
32.
33. //variable para obttener error
34. public static String strError;
35.
36. @Override
37. protected void onCreate(Bundle savedInstanceState) {
38. super.onCreate(savedInstanceState);
39. setContentView(R.layout.activity_pedido);
40.
41. //recuperar el ComboBox
42. opciones = (Spinner)findViewById(R.id.cboTipoMedicamento);
43.
44. //Recuperar los datos de Tipo Medicamento en un ArrayAdapter
45. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.opcionesTipoMedicamento, android.R.layout.simple_spinner_item);
46. //Agregar los elementos del adapter al ComboBox
47. opciones.setAdapter(adapter);
48. }
49.
50.
51. //metodo para borrar formulario
52. public void metodoBorrar(View view){
53. //borrar datos
54. etNombreMedicamento = (EditText)findViewById(R.id.txtNombreMedicamento);
55. etCantidad = (EditText)findViewById(R.id.txtCantidadRequerida);
56. spTipoMedimanteo = (Spinner)findViewById(R.id.cboTipoMedicamento);
57. rbCofarma = (RadioButton)findViewById(R.id.rbuCofarma);
58. rbEmpseoha = (RadioButton)findViewById(R.id.rbuEmpsepha);
59. rbComefar = (RadioButton)findViewById(R.id.rbuCemefar);
60. chPrincipal = (CheckBox)findViewById(R.id.chkFarmaciaPrincipal);
61. chSecundaria = (CheckBox)findViewById(R.id.chkFarmaciaSecundaria);
62.
63. etNombreMedicamento.setText("");
64. etCantidad.setText("");
65. spTipoMedimanteo.setSelection(0);
66. rbCofarma.setChecked(false);
67. rbEmpseoha.setChecked(false);
68. rbComefar.setChecked(false);
69. chPrincipal.setChecked(false);
70. chSecundaria.setChecked(false);
71. }
72.
73. //metodo para enviar formulario
74. public void fnEnviar(View view){
75. //borrar datos
76. etNombreMedicamento = (EditText)findViewById(R.id.txtNombreMedicamento);
77. etCantidad = (EditText)findViewById(R.id.txtCantidadRequerida);
78. spTipoMedimanteo = (Spinner)findViewById(R.id.cboTipoMedicamento);
79. rbCofarma = (RadioButton)findViewById(R.id.rbuCofarma);
80. rbEmpseoha = (RadioButton)findViewById(R.id.rbuEmpsepha);
81. rbComefar = (RadioButton)findViewById(R.id.rbuCemefar);
82. chPrincipal = (CheckBox)findViewById(R.id.chkFarmaciaPrincipal);
83. chSecundaria = (CheckBox)findViewById(R.id.chkFarmaciaSecundaria);
84.
85. strError = "";
86. strError += (!etNombreMedicamento.getText().toString().trim().isEmpty()) ? ""
: "Ingrese el nombre del medicamento.\n";
87. strError += (spTipoMedimanteo.getSelectedItem().toString().equals("---
Seleccione Tipo---")) ? "Seleccione el tipo de medicamento.\n" : "";
88. strError += (!etCantidad.getText().toString().trim().isEmpty()) ? "" : "Ingres
e la cantidad.\n";
89. strError += (!rbCofarma.isChecked() && !rbEmpseoha.isChecked() && !rbComefar.i
sChecked()) ? "Debe seleccionar un distribuidor.\n" : "";
90. strError += !chPrincipal.isChecked() && !chSecundaria.isChecked() ? "Debe
seleccionar al menos una sucursal receptora.\n" : "";
91.
92. //si hay error => mostrar mensaje
93. if(!strError.isEmpty())
94. {
95. //mostrar mensaje de advertencia
96. AlertDialog.Builder builder = new AlertDialog.Builder(this);
97. builder.setMessage(strError);
98. builder.setTitle("Advertencia");
99. builder.setPositiveButton("Aceptar", new DialogInterface.OnClickListener()
{
100. @Override
101. public void onClick(DialogInterface dialog, int which) {
102. dialog.cancel();
103. }
104. });
105.
106. AlertDialog dialogoAdvertencia = builder.create();
107. dialogoAdvertencia.show();
108.
109. return;
110. }
111.
112. //enviar datos al otro formulario
113. String strFarmaPrincipal = "Calle de la Rosa Nro. 28 (Farmacia
Principal)";
114. String strFarmaSecundaria = "Calle Alcazabilla Nro. 3 (Farmacia
Segundaria)";
115.
116. String strMedicamentoMensaje = etCantidad.getText().toString().trim() +
" del " + spTipoMedimanteo.getSelectedItem().toString() + "
" + etNombreMedicamento.getText().toString().trim();
117.
118. String strDireccion = "";
119. strDireccion += chPrincipal.isChecked() ? strFarmaPrincipal : "";
120. strDireccion += chSecundaria.isChecked() ? (strDireccion.isEmpty() ? st
rFarmaSecundaria : " y para la situada en " + strFarmaSecundaria) : "";
121. strDireccion = "Para la farmacia situada en " + strDireccion;
122.
123. String strDistribuidor = "";
124. strDistribuidor = rbCofarma.isChecked() ? rbCofarma.getText().toString(
) : strDistribuidor;
Activity_pedido.xml
48. android:text=""
49. app:layout_constraintEnd_toEndOf="parent"
50. app:layout_constraintStart_toStartOf="parent"
51. app:layout_constraintTop_toBottomOf="@+id/lblNombreMedicamento" />
52.
53. <TextView
54. android:id="@+id/lblTipoMedicamento"
55. android:layout_width="wrap_content"
56. android:layout_height="wrap_content"
57. android:layout_marginStart="16dp"
58. android:layout_marginLeft="16dp"
59. android:layout_marginTop="7dp"
60. android:text="Tipo Medicamento:"
61. android:textStyle="bold"
62. app:layout_constraintStart_toStartOf="parent"
63. app:layout_constraintTop_toBottomOf="@+id/txtNombreMedicamento" />
64.
65. <Spinner
66. android:id="@+id/cboTipoMedicamento"
67. android:layout_width="356dp"
68. android:layout_height="39dp"
69. android:layout_marginStart="16dp"
70. android:layout_marginLeft="16dp"
71. android:layout_marginTop="7dp"
72. android:layout_marginEnd="16dp"
73. android:layout_marginRight="16dp"
74. app:layout_constraintEnd_toEndOf="parent"
75. app:layout_constraintStart_toStartOf="parent"
76. app:layout_constraintTop_toBottomOf="@+id/lblTipoMedicamento" />
77.
78. <TextView
79. android:id="@+id/lblCantidadRequerida"
80. android:layout_width="wrap_content"
81. android:layout_height="wrap_content"
82. android:layout_marginStart="16dp"
83. android:layout_marginLeft="16dp"
84. android:layout_marginTop="7dp"
85. android:text="Cantidad Requerida:"
86. android:textStyle="bold"
87. app:layout_constraintStart_toStartOf="parent"
88. app:layout_constraintTop_toBottomOf="@+id/cboTipoMedicamento" />
89.
90. <EditText
91. android:id="@+id/txtCantidadRequerida"
92. android:layout_width="346dp"
93. android:layout_height="39dp"
94. android:layout_marginStart="16dp"
95. android:layout_marginLeft="16dp"
96. android:layout_marginTop="7dp"
97. android:layout_marginEnd="16dp"
98. android:layout_marginRight="16dp"
99. android:ems="10"
100. android:hint="@string/cantidad_medicamento"
101. android:inputType="number|numberDecimal"
102. app:layout_constraintEnd_toEndOf="parent"
103. app:layout_constraintStart_toStartOf="parent"
104. app:layout_constraintTop_toBottomOf="@+id/lblCantidadRequerida" />
105.
106. <TextView
107. android:id="@+id/lblDistribuidor"
108. android:layout_width="wrap_content"
109. android:layout_height="wrap_content"
110. android:layout_marginStart="16dp"
111. android:layout_marginLeft="16dp"
112. android:layout_marginTop="7dp"
113. android:text="Distribuidor:"
114. android:textStyle="bold"
115. app:layout_constraintStart_toStartOf="parent"
116. app:layout_constraintTop_toBottomOf="@+id/txtCantidadRequerida" />
117.
118. <RadioGroup
119. android:id="@+id/radioGroup"
120. android:layout_width="wrap_content"
121. android:layout_height="wrap_content"
122. android:layout_marginStart="16dp"
123. android:layout_marginLeft="16dp"
124. android:layout_marginTop="7dp"
125. android:orientation="vertical"
126. app:layout_constraintStart_toStartOf="parent"
127. app:layout_constraintTop_toBottomOf="@+id/lblDistribuidor">
128.
129. <RadioButton
130. android:id="@+id/rbuCofarma"
131. android:layout_width="wrap_content"
132. android:layout_height="wrap_content"
133. android:text="Cofarma" />
134.
135. <RadioButton
136. android:id="@+id/rbuEmpsepha"
137. android:layout_width="wrap_content"
138. android:layout_height="wrap_content"
139. android:text="Empsephar" />
140.
141. <RadioButton
142. android:id="@+id/rbuCemefar"
143. android:layout_width="wrap_content"
144. android:layout_height="wrap_content"
145. android:text="Cemefar" />
146.
147. </RadioGroup>
148.
149. <TextView
150. android:id="@+id/lblSucursalDestino"
151. android:layout_width="wrap_content"
152. android:layout_height="wrap_content"
153. android:layout_marginStart="16dp"
154. android:layout_marginLeft="16dp"
155. android:layout_marginTop="6dp"
156. android:text="Sucursal Receptora:"
157. android:textStyle="bold"
158. app:layout_constraintStart_toStartOf="parent"
159. app:layout_constraintTop_toBottomOf="@+id/radioGroup" />
160.
161.
162. <LinearLayout
163. android:id="@+id/contenedorCheckBox"
164. android:layout_width="wrap_content"
165. android:layout_height="wrap_content"
166. android:layout_marginStart="16dp"
167. android:layout_marginLeft="16dp"
168. android:layout_marginTop="6dp"
169. android:orientation="horizontal"
170. app:layout_constraintStart_toStartOf="parent"
171. app:layout_constraintTop_toBottomOf="@+id/lblSucursalDestino">
172.
173. <CheckBox
174. android:id="@+id/chkFarmaciaPrincipal"
175. android:layout_width="wrap_content"
176. android:layout_height="wrap_content"
177. android:text="Principal"
178. tools:layout_editor_absoluteX="38dp"
179. tools:layout_editor_absoluteY="388dp" />
180.
181. <CheckBox
182. android:id="@+id/chkFarmaciaSecundaria"
183. android:layout_width="wrap_content"
184. android:layout_height="wrap_content"
185. android:text="Secundaria"
186. tools:layout_editor_absoluteX="183dp"
187. tools:layout_editor_absoluteY="368dp" />
188. </LinearLayout>
189.
190.
191. <LinearLayout
192. android:layout_width="wrap_content"
193. android:layout_height="wrap_content"
194. android:layout_marginStart="16dp"
195. android:layout_marginLeft="16dp"
196. android:layout_marginTop="6dp"
197. android:layout_marginEnd="16dp"
198. android:layout_marginRight="16dp"
199. android:orientation="horizontal"
200. app:layout_constraintEnd_toEndOf="parent"
201. app:layout_constraintStart_toStartOf="parent"
202. app:layout_constraintTop_toBottomOf="@+id/contenedorCheckBox">
203.
204. <Button
205. android:id="@+id/btnBorrarFormulario"
206. android:layout_width="wrap_content"
207. android:layout_height="wrap_content"
208. android:onClick="metodoBorrar"
209. android:text="Borrar"
210. tools:layout_editor_absoluteX="108dp"
211. tools:layout_editor_absoluteY="428dp" />
212.
213. <Button
214. android:id="@+id/btnEnviar"
215. android:layout_width="wrap_content"
216. android:layout_height="wrap_content"
217. android:onClick="fnEnviar"
218. android:text="Enviar Pedido"
219. tools:layout_editor_absoluteX="113dp"
220. tools:layout_editor_absoluteY="443dp" />
221.
222.
223. </LinearLayout>
224.
225.
226. </android.support.constraint.ConstraintLayout>
ConfirmacionActivity.java
1. package com.jorgecuenca.farmacia;
2.
3. import android.content.Intent;
4. import android.support.v7.app.AppCompatActivity;
5. import android.os.Bundle;
6. import android.view.View;
7. import android.widget.EditText;
8. import android.widget.TextView;
9. import android.widget.Toast;
10.
11. public class ConfirmacionActivity extends AppCompatActivity {
12.
13. //variables para obtener campos de formulario
14. TextView tvDistribuidor, tvNombreMedicamento, tvDireccionEnvio;
15.
16. @Override
17. protected void onCreate(Bundle savedInstanceState) {
18. super.onCreate(savedInstanceState);
19. setContentView(R.layout.activity_confirmacion);
20.
21. //obtener datos
22. tvDistribuidor = (TextView) findViewById(R.id.txtPedidoDistribuidor);
23. tvNombreMedicamento = (TextView) findViewById(R.id.txtMedicamentoSolicitado);
24. tvDireccionEnvio = (TextView) findViewById(R.id.txtDireccionEnvio);
25.
26. //crear Bundle para recibir los datos del otro formulario
27. Bundle bundlePedido = getIntent().getExtras();
28.
29. tvDistribuidor.setText(bundlePedido.getString("Distribuidor"));
30. tvNombreMedicamento.setText(bundlePedido.getString("Medicamento"));
31. tvDireccionEnvio.setText(bundlePedido.getString("Direccion"));
32. }
33.
34. //funcion para cancelar y volver al formulario anterior
35. public void fnCancelar(View view) {
36. this.finish();
37. }
38.
39. //funcion para confirmar
40. public void fnConfirmar(View view) {
41. //mostrar mensaje de envío y cerrar
42. Toast.makeText(this, "Pedido enviado correctamente.",
Toast.LENGTH_LONG).show();
43. this.finish();
44.
45. //Intent intentPedido = new Intent(this, Pedido.class);
46. //startActivity(intentPedido);
47.
48. }
49. }
Activity_Confirmacion.xml
45. android:layout_width="wrap_content"
46. android:layout_height="wrap_content"
47. android:layout_marginStart="16dp"
48. android:layout_marginLeft="16dp"
49. android:layout_marginTop="7dp"
50. android:text="Medicamento Solicitado"
51. app:layout_constraintStart_toStartOf="parent"
52. app:layout_constraintTop_toBottomOf="@+id/lblMedicamentoSolicitado" />
53.
54. <TextView
55. android:id="@+id/lblDireccionEnvio"
56. android:layout_width="wrap_content"
57. android:layout_height="wrap_content"
58. android:layout_marginStart="16dp"
59. android:layout_marginLeft="16dp"
60. android:layout_marginTop="15dp"
61. android:text="Dirección de Envío:"
62. android:textAppearance="@style/TextAppearance.AppCompat.Large"
63. app:layout_constraintStart_toStartOf="parent"
64. app:layout_constraintTop_toBottomOf="@+id/txtMedicamentoSolicitado" />
65.
66. <TextView
67. android:id="@+id/txtDireccionEnvio"
68. android:layout_width="wrap_content"
69. android:layout_height="wrap_content"
70. android:layout_marginStart="16dp"
71. android:layout_marginLeft="16dp"
72. android:layout_marginTop="7dp"
73. android:text="Direccion Envío"
74. app:layout_constraintStart_toStartOf="parent"
75. app:layout_constraintTop_toBottomOf="@+id/lblDireccionEnvio" />
76.
77.
78. <LinearLayout
79. android:layout_width="wrap_content"
80. android:layout_height="wrap_content"
81. android:layout_marginStart="16dp"
82. android:layout_marginLeft="16dp"
83. android:layout_marginTop="6dp"
84. android:layout_marginEnd="16dp"
85. android:layout_marginRight="16dp"
86. android:orientation="horizontal"
87. app:layout_constraintEnd_toEndOf="parent"
88. app:layout_constraintStart_toStartOf="parent"
89. app:layout_constraintTop_toBottomOf="@+id/txtDireccionEnvio">
90.
91. <Button
92. android:id="@+id/btnCancelar"
93. android:layout_width="wrap_content"
94. android:layout_height="wrap_content"
95. android:onClick="fnCancelar"
96. android:text="Cancelar"
97. tools:layout_editor_absoluteX="108dp"
98. tools:layout_editor_absoluteY="428dp" />
99.
100. <Button
101. android:id="@+id/btnEnviar"
102. android:layout_width="wrap_content"
103. android:layout_height="wrap_content"
104. android:onClick="fnConfirmar"
105. android:text="Enviar"
106. tools:layout_editor_absoluteX="222dp"
107. tools:layout_editor_absoluteY="412dp" />
108.
109. </LinearLayout>
110.
111.
112. </android.support.constraint.ConstraintLayout>