Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.1.10. Modifique la aplicación de modo que tenga la vista de una calculadora básica.
Pruebas unitarias
Las pruebas unitarias suelen ser de mucha utilidad para documentar la forma en que debería
funcionar las diversas partes de un sistema. Ayuda a verificar que el sistema cumpla con los
requerimientos y que los resultados son los esperados. Por otro lado ayuda a probar el código sin
tener que ensamblarlo con el resto del sistema.
API DOCS
La finalidad de los api docs consiste en resumir las interfaces en el código fuente sin tener que
visualizar directamente todo el código. Es el hecho de realizar documentación en el código fuente,
en aquellos métodos que realicen operaciones complejas. Javadoc es una utilidad de Oracle para
la generación de documentación de APIs en formato HTML a partir de código fuente Java. Javadoc
es el estándar de la industria para documentar clases de Java. La mayoría de los IDEs los generan
automáticamente.
Documentación de usuario
Activity_main.xml
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="20dp"
android:fontFamily="monospace"
android:text="TextView"
android:textAlignment="textEnd"
android:textAllCaps="true"
android:textColor="#673AB7"
android:textSize="24sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnPorcentaje"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickPorcentaje"
android:text="%" />
<Button
android:id="@+id/btnAC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickAC"
android:text="AC" />
<Button
android:id="@+id/btnC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickC"
android:text="C" />
<Button
android:id="@+id/btnSuma"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickSum"
android:text="+" />
</LinearLayout>
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btnSiete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick7"
android:text="7" />
<Button
android:id="@+id/btnOcho"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick8"
android:text="8" />
<Button
android:id="@+id/btnNueve"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick9"
android:text="9" />
<Button
android:id="@+id/btnResta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickRes"
android:text="-" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnCuatro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick4"
android:text="4" />
<Button
android:id="@+id/btnCinco"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick5"
android:text="5" />
<Button
android:id="@+id/btnSeis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick6"
android:text="6" />
<Button
android:id="@+id/btnMulti"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickMult"
android:text="*" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnUno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick1"
android:text="1" />
<Button
android:id="@+id/btnDos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick2"
android:text="2" />
<Button
android:id="@+id/btnTres"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick3"
android:text="3" />
<Button
android:id="@+id/btnDiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickDiv"
android:text="/" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btnSQR"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickSQR"
android:text="SQR" />
<Button
android:id="@+id/btnCero"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClick0"
android:text="0" />
<Button
android:id="@+id/btnPunto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickPunto"
android:text="." />
<Button
android:id="@+id/btnIgual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:onClick="onClickIgual"
android:text="=" />
</TableRow>
</TableLayout>
</LinearLayout>
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.interfazusuario">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Material3.DynamicColors.Dark"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
MainActivity.java
package com.example.interfazusuario;
import androidx.appcompat.app.AppCompatActivity;
import android.view.Window;
import android.os.Bundle;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.View;
import android.widget.Toast;
import android.app.ProgressDialog;
/**
*/
ProgressDialog progressDialog;
@Override
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}
showDialog(0);
showDialog(1);
showDialog(2);
showDialog(3);
showDialog(4);
showDialog(5);
showDialog(6);
showDialog(7);
}
showDialog(8);
showDialog(9);
showDialog(10);
showDialog(11);
showDialog(12);
progressDialog.setProgress(0);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
progressDialog.dismiss();
}
}).start();
showDialog(13);
showDialog(14);
showDialog(15);
showDialog(16);
try {
Thread.sleep(5000);
dialog.dismiss();
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
showDialog(18);
progressDialog.setProgress(0);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
progressDialog.dismiss();
}).start();
showDialog(19);
@Override
switch (id) {
case 0:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 1:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 2:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 3:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 4:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 5:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 6:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
}
)
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 7:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 8:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 9:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 10:
.setTitle("Tipo de Operacion")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
Toast.makeText(getBaseContext(),
}
)
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
Toast.makeText(getBaseContext(),
.setMultiChoiceItems(items, itemsChecked,
new DialogInterface.OnMultiChoiceClickListener() {
Toast.makeText(getBaseContext(),
Toast.LENGTH_SHORT).show();
).create();
case 12:
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK",
new DialogInterface.OnClickListener() {
int whichButton)
Toast.makeText(getBaseContext(),
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
int whichButton)
Toast.makeText(getBaseContext(),
});
return progressDialog;
case 13:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 14:
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 15:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 16:
new DialogInterface.OnClickListener() {
{}
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
{}
).create();
case 18:
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK",
new DialogInterface.OnClickListener() {
int whichButton)
Toast.makeText(getBaseContext(),
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
int whichButton)
{
Toast.makeText(getBaseContext(),
});
return progressDialog;
case 19:
.setTitle("Tipo de Operacion")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
Toast.makeText(getBaseContext(),
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
Toast.makeText(getBaseContext(),
.setMultiChoiceItems(items2, items2Checked,
new DialogInterface.OnMultiChoiceClickListener() {
Toast.makeText(getBaseContext(),
items2[which] + (isChecked ? " checked!":" unchecked!"),
Toast.LENGTH_SHORT).show();
).create();
return null;
APP MIDIALOGO
Activity_main.xml
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_dialog"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.058" />
<Button
android:id="@+id/btn_dialog2"
android:layout_width="fill_parent"
android:layout_height="49dp"
android:onClick="onClick2"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_dialog"
app:layout_constraintVertical_bias="0.109" />
<Button
android:id="@+id/btn_dialog3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:onClick="onClick3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_dialog2"
app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package com.example.midialogo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.View;
import android.widget.Toast;
import android.widget.Toast;
import android.app.ProgressDialog;
/**
*/
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showDialog(0);
try {
Thread.sleep(5000);
dialog.dismiss();
} catch (InterruptedException e) {
e.printStackTrace();
}).start();
showDialog(1);
progressDialog.setProgress(0);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
progressDialog.dismiss();
}).start();
@Override
switch (id) {
case 0:
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
Toast.makeText(getBaseContext(),
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
Toast.makeText(getBaseContext(),
.setMultiChoiceItems(items, itemsChecked,
new DialogInterface.OnMultiChoiceClickListener() {
Toast.makeText(getBaseContext(),
Toast.LENGTH_SHORT).show();
).create();
case 1:
progressDialog.setTitle("Downloading files...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK",
new DialogInterface.OnClickListener() {
int whichButton)
Toast.makeText(getBaseContext(),
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
int whichButton)
Toast.makeText(getBaseContext(),
});
return progressDialog;
return null;
3.5. EVALUACIÓN.
3.1.10 17/08/2022
3.3.6 17/08/2022
3.4.1 17/08/2022
3.4.2 17/08/2022
3.4.3 17/08/2022
Calificación de la Práctica: