Professional Documents
Culture Documents
DE MANAB
EXTENSIN CHONE
INTEGRANTES:
-BRAVO ZAMBRANO JAIME RUBEN
- MERA SANTOS NERY JAVIER
-ZAMBRANO BRAVO GENESIS FERNANDA
TEMA
REGISTROS DE DATOS UNIVERSITARIOS
El desarrollo de aplicaciones Android en la actualidad est cada vez ms creciendo en el campo
profesional y en nuestro caso en el campo como estudiantes.
Como tema para la sustentacin del Proyecto Integrador de Programacin Mvil hemos escogido el
tema REGISTROS DE DATOS UNIVERSITARIOS, est basado en la creacin de una aplicacin
android para mvil que nos ayude a ingresar datos de estudiantes para facilitarnos un poco ms en el
momento de tener datos ingresados de los estudiantes de una universidad.
deseemos ver, nos aparece la opcin Nuevo que este nos lleva a ingresar un nuevo registro, tambin
encontramos una opcin Eliminar que nos permite eliminar el registro si ya no lo deseamos y la
opcin Ver registros universitarios que nos permite regresar al registro de los estudiantes ingresados,
contamos con un botn llamado Limpiar nos permite limpiar por si estemos ingresando mal los datos
y finalmente tiene una t opcin de Salir, para salir rpidamente de la aplicacin cuando ya no
deseemos estar en ella.
Java.
Android SDK.
Android JDK
Nos indica que no tenemos instalada la mquina virtual Java (o la versin no es la adecuada). Para
solucionarlo regresa al punto anterior.
3. Al arrancar Eclipse comenzar preguntndonos que carpeta queremos utilizar como workspace. En
esta carpeta sern almacenados los proyectos que crees en Eclipse. Es importante que conozcas su
ubicacin para poder hacer copias de seguridad de tus proyectos.
seleccionar solo algunos paquetes. Siempre resulta interesante instalar la ltima versin de Android
(incluyendo documentacin, ejemplos y por supuesto la plataforma). Ms adelante podrs instalar ms
paquetes si necesitas otras plataformas de desarrollo u otras mquinas virtuales.
Instalacin del plug-in Android para Eclipse (ADT)
El ltimo paso consiste en instalar el plug-in Android para Eclipse, tambin conocido como ADT. Este
software desarrollado por Google, instala una serie de complementos en Eclipse, de forma que el
entorno de desarrollo se adapte al desarrollo de aplicaciones para Android. Se crearn nuevos
botones, tipos de aplicacin, vistas,... para integrar Eclipse con el Android SDK que acabamos de
instalar.
Instalacin del plug-in Android para Eclipse (ADT)
Para instalar el plug-in Android sigue los siguientes pasos:
1. Arranca Eclipse y selecciona Help>Install New Software...
2. En el dilogo Available Software que aparece, haz clic en Add En el cuadro de dilogo Add
Site que sale introduce un nombre para el sitio remoto (por ejemplo, Plug-in Android) en el
campo Name. En el campoLocation, introduce la siguiente URL:
http://dl-ssl.google.com/android/eclipse/
NOTA: Si tienes algn problema en adquirir el plug-in, puedes intentar utilizar https en el URL en vez
de http. Finalmente pulsa OK.
Ahora en el cuadro Available Software debe aparecer Developer Tools:
3. Selecciona
los paquetes a
instalar y pulsa
Next.
aparecen
listadas
caractersticas
de
DDMS
Android
Development
Tools.
4. Pulsa
Next
para
aceptar
la
Ahora
las
Android
leer
licencia
y
e
Abre Eclipse y pulsa en el botn Android Virtual Device Manager Te aparecer la lista con los
Pulsa a continuacin el botn New... para crear un nuevo AVD. Aparecer la siguiente ventana:
SD Card: Memoria externa del dispositivo. Size: tamao de la memoria. Esta crear un nuevo
fichero. File: se utilizar un fichero previamente creado.
Snapshot: Si lo seleccionas podrs congelar la ejecucin del dispositivo en un determinado instante.
Ms tarde, podrs retomar la ejecucin en este instante, sin tener que esperar a que se inicialice el
dispositivo. Conviene marcarlo para conseguir una carga ms rpida.
Use Host GPU: Se habilita la emulacin hardware para grficos OpenGLES. Su navegacin entre
ventanas ser ms fluida.
NOTA: El emulador mostrado no est previsto para duplicar un dispositivo en particular, sino para
tratar algunas de las caractersticas principales. Algunas caractersticas de hardware no estn
disponibles en el emulador, por ejemplo, el multi-touch o los sensores.
FASE DE ANLISIS
Existen una serie de elementos clave que resultan imprescindibles para desarrollar aplicaciones en
Android. En este apartado vamos a realizar una descripcin inicial de algunos de los ms importantes
que necesitamos para la realizacin de nuestra aplicacin.
Vista (View)
Las vistas son los elementos que componen la interfaz de usuario de una aplicacin. Son por ejemplo,
un botn, una entrada de texto, Todas las vistas van a ser objetos descendientes de la clase View, y
por tanto, pueden ser definidos utilizando cdigo Java. Sin embargo, lo habitual va a ser definir las
vistas utilizando un fichero XML y dejar que el sistema cree los objetos por nosotros a partir de este
fichero. Esta forma de trabajar es muy similar a la definicin de una pgina web utilizando cdigo
HTML.
Layout
Un Layout es un conjunto de vistas agrupadas de una determinada forma. Vamos a disponer de
diferentes tipos de Layouts para organizar las vistas de forma lineal, en cuadrcula o indicando la
posicin absoluta de cada vista. Los Layouts tambin son objetos descendientes de la clase View.
Igual que las vistas los Layouts pueden ser definidos en cdigo, aunque la forma habitual de definirlos
en utilizando cdigo XML.
Actividad (Activity)
Una aplicacin en Android va a estar formada por un conjunto de elementos bsicos de visualizacin,
coloquialmente conocidos como pantallas de la aplicacin. En Android cada uno de estos elementos, o
pantallas, se conoce como actividad. Su funcin principal es la creacin del interfaz de usuario. Una
aplicacin suelen necesitar varias actividades para crear el interfaz de usuario. Las diferentes
actividades creadas sern independientes entre s, aunque todas trabajarn para un objetivo comn.
Toda actividad ha de pertenecer a una clase descendiente de Activity.
Servicio (Service)
Un servicio es un proceso que se ejecuta detrs, sin la necesidad de una interaccin con el usuario.
Es algo parecido a un demonio en Unix o a un servicio en Windows. En Android disponemos de dos
tipos de servicios: servicios locales, que pueden ser utilizados por aplicaciones del mismo terminal y
servicios remotos, que pueden ser utilizados desde otros terminales. Los servicios son estudiados en
el CAPTULO 8.
Intencin (Intent)
Una intencin representa la voluntad de realizar alguna accin; como realizar una llamada de telfono,
visualizar una pgina web. Se utiliza cada vez que queramos:
lanzar un servicio
Los componentes lanzados pueden ser internos o externos a nuestra aplicacin. Tambin
utilizaremos las intenciones para el intercambio de informacin entre estos componentes.
Receptor de anuncios (Broadcast receiver)
Un receptor de anuncios recibe y reacciona ante anuncios de tipo broadcast. Existen muchos
originados por el sistema; como por ejemplo Batera baja, llamada entrante,... Aunque, las
aplicaciones tambin puede lanzar un anuncio broadcast. No tienen interfaz de usuario, aunque
pueden iniciar una actividad para atender a un anuncio.
Proveedores de Contenido (Content Provider)
La comparticin de informacin entre telfonos mviles resulta un tema vital. Android define un
mecanismo estndar para que las aplicaciones puedan compartir datos sin necesidad de comprometer
la seguridad del sistema de ficheros. Con este mecanismo podremos acceder a datos de otras
aplicaciones, como la lista de contactos, o proporcionar datos a otras aplicaciones. Los Content
Provider son estudiados en el 0.
FASE DE DISEO
El diseo de base de datos que realizamos es el siguiente:
FASE DE CONSTRUCCIN
Para el desarrollo de nuestra aplicacin android nos vamos en el iono res de ah a Layout y
activity_main.xml
En activity_main.xml tenemos la codificacin de nuestra aplicacin aqu creamos los botones, los
TextView y los EditText.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_logou"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lbCedula"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strCedula" />
<EditText
android:id="@+id/txtCedula"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textPersonName"
android:ems="10"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lbTitle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strName" />
<EditText
android:id="@+id/txtName"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="textPersonName" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lbFechaNac"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strFechaNac" />
<TextView
android:id="@+id/txtFechaNac"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strfecha"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lbPais"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Ciudad" />
<Spinner
android:id="@+id/sPaises"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lbPai"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strSexo" />
<RadioGroup
android:id="@+id/gpSexo"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" >
<RadioButton
android:id="@+id/rMan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="@string/strMan" />
<RadioButton
android:id="@+id/rWoman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strWoman" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lbSpeak"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Trabaja" />
<CheckBox
android:id="@+id/chIdioma"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/strSi" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnRegistrar"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#D9D2D2"
android:drawableRight="@drawable/registrar1"
android:text="@string/strReg" />
<Button
android:id="@+id/btnRegistros"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#D9D2D2"
android:drawableRight="@drawable/lupa1"
android:text="Guardados" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:id="@+id/btnCancelar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#2BC5D3"
android:drawableRight="@drawable/salir1"
android:text="Salir" />
<Button
android:id="@+id/btnLimpiar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="start"
android:background="#877087"
android:drawableRight="@drawable/limpiar2"
android:text="Limpiar" />
</LinearLayout>
</LinearLayout>
MainActivity.java
package com.chone.uleam;
//
import java.util.Calendar;
import com.chone.uleam.db.SQLite;
//
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
//Variables para fecha
private int mYear;
private int mMonth;
private int mDay;
//
private TextView txtFechaNac;
private EditText txtName;
private Spinner sPaises;
private Button btnRegistrar;
private Button btnLimpiar;
private Button btnCancelar;
private Button btnRegistros;
private CheckBox chIdioma;
private RadioGroup radioGroup;
//
private SQLite sqlite;
//DatePickerDialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int
dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
txtFechaNac.setText( ((mDay<10)?"0"+mDay:mDay) + "/" +
((mMonth<10)?"0"+mMonth:mMonth) + "/" + mYear );
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
chIdioma = (CheckBox) findViewById( R.id.chIdioma );
txtName = (EditText) findViewById( R.id.txtName );
btnRegistrar = (Button) findViewById(R.id.btnRegistrar );
btnRegistrar.setOnClickListener( this );
btnCancelar = (Button) findViewById(R.id.btnCancelar );
btnCancelar.setOnClickListener( this );
RegistroActivity.java
package com.chone.uleam;
import java.util.ArrayList;
import com.chone.uleam.db.SQLite;
//
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class RegistroActivity extends Activity implements OnClickListener {
//
private TextView textView;
private Button btnNuevo;
private Button btnDelete;
private Button btnLista;
private SQLite sqlite;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registro);
//
textView = (TextView) findViewById( R.id.txtResultado );
btnNuevo = (Button) findViewById( R.id.btnNuevo );
btnDelete = (Button) findViewById( R.id.btnDelete );
btnLista = (Button) findViewById( R.id.btnLista );
btnNuevo.setOnClickListener( this );
btnLista.setOnClickListener( this );
btnDelete.setOnClickListener( this );
textView.setTextSize(28);
//Recupera parametro ID de registro
textView.setText( "" );
Intent i = getIntent();
Bundle bundle = i.getExtras();
if ( bundle != null ) {
int id = bundle.getInt("id");
//base de datos
sqlite = new SQLite( this );
sqlite.abrir();
Cursor cursor = sqlite.getRegistro(id);
ArrayList<String> reg = sqlite.getFormatListUniv(cursor);
textView.setText( reg.get(0) );
}
//
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.registro, menu);
return true;
}
@Override
public void onClick(View v ) {
switch ( v.getId() )
{
case R.id.btnNuevo:
RegistrosActivity.java
package com.chone.uleam;
import java.util.ArrayList;
import com.chone.uleam.db.SQLite;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class RegistrosActivity extends Activity implements OnItemClickListener{
//
private ListView listView;
private ArrayAdapter<String> adaptador ;
private SQLite sqlite;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registros);
//
listView = (ListView) findViewById( R.id.lstRegistros );
//Abre conexion a sqlite
sqlite = new SQLite( this );
sqlite.abrir();
//obtiene registros e imprimir en el listview
Cursor cursor = sqlite.getRegistros();
ArrayList<String> listData = sqlite.getFormatListUniv( cursor );
adaptador = new ArrayAdapter<String>( this ,android.R.layout.simple_list_item_1 ,
listData );
listView.setAdapter( adaptador );
listView.setOnItemClickListener( this );
if( listData.size()== 0 )
{
Toast.makeText(getBaseContext(), "No existen registros"
,Toast.LENGTH_SHORT).show();
}
//
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.registros, menu);
return true;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//
Object object = listView.getItemAtPosition( position );
//Se extrae el ID = [X]
int posicionInicial = object.toString().indexOf("[") + 1;
int posicionFinal = object.toString().indexOf("]",posicionInicial);
String resultado = object.toString().substring(posicionInicial, posicionFinal);
//ejecuta nueva actividad
Bundle b = new Bundle();
b.putInt("id", Integer.valueOf(resultado) );
Intent iRegs = new Intent( RegistrosActivity.this, RegistroActivity.class );
iRegs.putExtras(b);
startActivity( iRegs );
}
}
CONCLUSION
Una vez terminada la aplicacin y despus de analizar los resultados obtenidos, se obtienen las
siguientes conclusiones.
En primer lugar, cabe destacar que se han alcanzado todos los objetivos propuestos. Se han
conseguido desarrollar una aplicaciones que haciendo uso del Android SDK Y JDK ha resultado muy
satisfactoria, creo que nos ha ayudado aprender en la creacin de una aplicacin que nos permita
guardar Datos en de aplicaciones para dispositivos mviles, as poco a poco vamos a ir aprendiendo
ms conocimientos eh ir realizando ms aplicaciones ya que si y se pueden obtener unos jugosos
beneficios colocndola en el mercado de aplicaciones de Android.
A partir de este proyecto se abren varias lneas de investigacin o desarrollo, podra servir para
aprender cmo realizar aplicaciones y empezar el desarrollo de una gran aplicacin con unas bases
establecidas muy extensas o bien se podra continuar alguna de las aplicaciones propuestas, el
reproductor multimedia es muy funcional, pero dentro de esa funcionalidad se podran aadir nuevos
apartados sin que la simplicidad desaparezca.
ANEXOS
INTEGRANTES DEL GRUPO REALIZANDO LA
APLICACIN.
DESARROLLANDO LA APLICACIN