35

Click here to load reader

Aplicación zirconia

Embed Size (px)

DESCRIPTION

Una aplicación de plataforma eclipse y lenguaje Java

Citation preview

Page 1: Aplicación zirconia

INSTITUTO TECNOLOGICO

DE LA PIEDAD

INGENIERIA EN SISTEMAS

COMPUTACIONALES

COMPUTO MOVIL

JUAN RENE GARCIA NEGRETE

CRISTIAN OMAR JARAMILLO MENDEZ

OMAR ALEJANDRO RAMIREZ ELORZA

Page 2: Aplicación zirconia

APLICACIÓN ZIRCONIA

En primer lugar vamos a crear un nuevo proyecto llamado Zirconia.

Para ello nos vamos a FileNewAndroid Project

Después de crear el proyecto nos vamos a main.xml se mostrara en color

negro para cambiar el color como se muestra en la imagen nos vamos al xml y

agregamos el color de fondo con el siguiente código:

android:background="#1B3361"

Page 3: Aplicación zirconia

A hora en nuestro main agregamos 5 botones 2 EditText y un TextView

creamos los String para cada componente de la siguiente manera

Nos vamos a la carpeta values dentro de res damos doble click en Strings

Dentro de String damos clic en el boton Add… seleccionamos String y damos

click en el boton Ok

Page 4: Aplicación zirconia

Agregamos un nombre para identificar el String y el mensaje que contendrá.

Creamos los Strings necesarios y procedemos asignarlos a cada componente.

Para ello tenemos dos formas la primera es dentro del código xml de cada

componente llamar la variable String con el siguiente código

android:text="@string/web"

Donde @string hace referencia al tipo de variable obtenida y web que es el

nombre con el que definimos nuestra variable que contiene el mensaje “Ir a

pagina web” definido anterior mente

Otra forma de agregar los String se muestra a continuación

En nuestra forma damos click derecho sobre el componente y damos click en

Edit Text…

Page 5: Aplicación zirconia

Se abre la siguiente ventana donde se muestran los String creados

seleccionamos el que deseamos asignar al componente y damos Click en Ok

Y revisamos los resultados

Page 6: Aplicación zirconia

Después de haber creado los String y agregar los componentes la pantalla

principal quedara de la siguiente manera

En el caso de los EditTExt se hace lo siguiente:

Click derecho sobre el EditText y damos Click sobre Edit Hint... Y

seleccionamos de igual forma el String que contiene el texto que ocupamos.

O en el código xml del componente agregamos la siguiente línea:

android:hint="@string/nomusuario"

Nuevamente @string hace referencia al tipo de variable obtenida y

nomusuario que es el nombre que le asignamos al String.

Page 7: Aplicación zirconia

A hora programaremos en primer lugar el botón Galería de la tienda pero antes

debemos crear un nuevo archivo xml donde se mostrara la galería para ello nos

vamos a la carpeta res dentro de nuestra aplicación desplegamos su contenido

y sobre la carpeta layout damos click derecho NewAndroid XML File

Se abre la siguiente ventana agregamos el nombre (teniendo en cuenta que

debe iniciar con una letra en minúscula) en nuestro caso será

(galeria_publica) y damos click en Finish.

Page 8: Aplicación zirconia

Se crea nuestra nueva ventana cambiamos el color

Para mostrar la galería agregaremos el componente Gallery a nuestra nueva

ventana

Page 9: Aplicación zirconia

Una vez que se ha creado nuestra nueva ventana procedemos a crear una

nueva actividad que contendrá dicha ventana

Para ello nos vamos a la carpeta srccom.proyectoClick

derechoNewClass

Se agregamos un nombre

para este caso el nombre

será (Galeria_publica) ya

que nuestro main.xml le

agregamos el nombre en

nuestro caso el nombre será

(galeria_publica) y damos

Click en Finish.

Nota: el nombre debe

iniciar con una letra

Mayúscula

Page 10: Aplicación zirconia

Después de haber creado la nueva _Actividad se debe especificar en el archivo

AndroidManifest.xm

<activity

android:label="@string/app_registro"

android:name=".Registro_usuario" //Nombre de la clase de nuestra

Actividad

> </activity>

CODIGO GALERIA DE LA TIENDA

public void btgaleria(View v){

Intent intent=new Intent(this,Galeria_publica.class);

startActivity(intent);

}

1.- Se enlaza a la actividad Galeria_publica, con el método onClick llamado btgaleria.

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.Gallery;

import android.widget.ImageView;

import android.widget.Toast;

import android.widget.AdapterView.OnItemClickListener;

public class Galeria_publica extends Activity implements

OnItemClickListener{

Gallery gallery;

ImageView imageView;

private String[] titlet = {

"Llavero perla azul ",

"Llavero perla beige ",

"Llavero perla beige ",

"Llavero diamantada ",

"Llavero Sn Benito ",

"Llavero gota ",

"Llavero Sn Benito ",

"Llavero Sn Benito ",

"Llavero hoja de parra ",

"Llavero chilillo ",

"Llavero angel ",

"Llavero chilillo grande ",

"Llavero angel cadena ",

"Llavero Sn Benito ",

"Llavero octagon "

};

Page 11: Aplicación zirconia

private String[] titled = {

"Herraje plata, perla azul ",

"Herraje oro, perla beige ",

"Herraje plata, perla beige ",

"Herraje oro, diamantada ",

"Herraje plata, Sn Benito ",

"Herraje plata, forma gota ",

"Herraje metalico, Sn Benito ",

"Herraje metalico, Sn Benito con cadena ",

"Herraje metalico, hoja de parra ",

"Herraje metalico, chilillo ",

"Herraje metalico, angel ",

"Herraje chilillo grande ",

"Herraje angel con cadena ",

"Herraje Sn Benito ",

"Herraje plata, octagon "

};

private String[] titlep = {

"Precio: $20",

"Precio: $20",

"Precio: $20",

"Precio: $20",

"Precio: $25",

"Precio: $25",

"Precio: $25",

"Precio: $25",

"Precio: $30",

"Precio: $15",

"Precio: $25",

"Precio: $30",

"Precio: $25",

"Precio: $20",

"Precio: $15"

};

2.- La clase principal hace referencia a la actividad que se está enlazando, se agrega

el método onitemclicklistener, se agregan los import de tanto galería como

imagenView, se introducen los títulos, descripción y precio de los artículos utilizando

prívate String [].

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.galeria_publica);

gallery=(Gallery)findViewById(R.id.gallery1);

imageView=(ImageView)findViewById(R.id.imageView1);

gallery.setAdapter(new Pag_Galeria_Publica(this));

gallery.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> adapter, View arg1,

int position,

long arg3) {

final int a=position;

AlertDialog.Builder dialogBuilder = new

AlertDialog.Builder(Galeria_publica.this);

dialogBuilder.setTitle("Selecciona");

Page 12: Aplicación zirconia

dialogBuilder.setItems(R.array.DIALOGO2, new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int

itemm) {

if(itemm==0){

Dialog d = new Dialog(Galeria_publica.this);

d.setTitle(titlet[a]+titlep[a]);

ImageView im=new ImageView(Galeria_publica.this);

im.setImageResource(Pag_Galeria_Publica.ThumbsIds[a]);

d.setContentView(im);

d.show();

Toast.makeText(Galeria_publica.this, titled[a],

Toast.LENGTH_LONG).show();

}

if(itemm==1){

finish();

Toast.makeText(Galeria_publica.this, "Debes registrarte para

poder comprar", Toast.LENGTH_LONG).show();

}

}

});

dialogBuilder.setNegativeButton("CANCEL", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int

which) {

}

});

AlertDialog alertDialog = dialogBuilder.create();

alertDialog.show();

}

});

}

public void onItemClick(AdapterView<?> arg0, View arg1, int

arg2, long arg3) {

}

}

3.- Al inicio se crea unas variables para señalar el componente, en este caso galería

se encuentra en el layout y se guarda en galería, después se hace lo mismo con la

imagen, depende de que imagen se haya seleccionado, se crea un método si el ítem

es escuchado y clikeado (imagen), se crea otro método de dialog este es una ventana

que te queda sobrepuesta al layout y se crea ahí mismo un adapatador para un arreglo

que se tiene con el nombre dialogo2, nuestro arreglo es de imágenes y nuestro dialogo

lo manejamos para posicionar en este caso será el cero, un ejemplo es que si la

imagen 1 es la posición 0, entonces si presionas a esa misma, te abre otro dialogo con

otro titulo e imagen aquí se selecciona el ítem 1 que te manda el mensaje de debes

registrarte para hacer dicha compra.

Page 13: Aplicación zirconia

CODIGO PAGINA WEB

<uses-permission android:name="android.permission.INTERNET"/>

Se inserta el permiso para el internet en adroid manifest.

public void abrir(View v) {

Toast.makeText(this, "Abriendo

pagina",Toast.LENGTH_SHORT).show();

Intent i=new Intent(Intent.ACTION_VIEW,

Uri.parse("http://www.zirconia.com"));

startActivity(i);

}

Se agrega el método onClick en el botón ir a la página web, se pone como

nombre abrir, está haciendo referencia al public void abrir, se agrega un toast

para mandar un mensaje de que se está abriendo la página y manda a la

página www.zirconia.com

Ahora se programara la funcionalidad de los botones Registrar y Entrar

1.- El primero mandara a una pantalla de registro para darse de alta en el

sistema y guardar sus datos de usuario

2.-El segundo se utilizara cada vez que un usuario registrado desee entrar a la

aplicación con su nombre de usuario y contraseña

Para ello primero necesitamos crear una base de datos donde se guardaran

los datos del usuario

En primer lugar creamos una nueva clase en nuestro proyecto, vamos a la

carpeta srccom.proyectoClick derechoNewClass

En la ventana que se muestra agregamos el nombre ConexionBD y damos

click en el botón Finish

Page 14: Aplicación zirconia

Al abrir nuestro nueva clase solo se mostrara este código

public class ConexionBD { {

Lo que debemos hacer ahora es extender la clase de SQLiteOpenHelper y agregar los métodos que necesita para su implementación. En el método Oncreate se definen las tablas, sus campos con el tipo de dato

public class ConexionBD extends SQLiteOpenHelper { public Conexion(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version) } @Override public void onCreate(SQLiteDatabase db) { String query= "CREATE TABLE registro(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, nombre TEXT, calle TEXT, telefonoca TEXT, telefonocel TEXT, correo TEXT, nombreu TEXT, contrasenia TEXT)"; String queryy= "CREATE TABLE Compras(idc INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,id TEXT,nombre TEXT,precio TEXT,descripcion TEXT)"; db.execSQL(query); db.execSQL(queryy); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }

}

Ya que tenemos creada nuestra clase conexión creamos un nuevo archivo xml

para agregar los campos de registro de usuario como ya se creó con

anterioridad solo se definirán los pasos para hacerlo:

Vamos a la carpeta res layout click derecho NewAndroid XML File

Colocamos el nombre en la nueva ventana (registro_usuario) y finalmente

damos Click en finish

Page 15: Aplicación zirconia

En nuestra nueva ventana cambiamos el color y agregamos 7 EditText y 3

Botones como se muestran en la imagen

El texto que se muestra en los EditText y Botones se explico anterior mente

de tal forma que no es necesario colocarlo nuevamente.

Al terminar con nuestro nueva ventana vamos a crear una nueva Actividad que

contenga el código de los botones Registrar, Consultar y Eliminar

Para crear la nueva actividad nos vamos a la carpeta

srccom.proyectoClick derechoNewClass

Colocamos el nombre en la nueva Clase (Registro_usuario) y finalmente

damos Click en finish

Una vez creada la nueva actividad lo que debemos hacer ahora es extender la

clase de Activity y agregar el método onCreate(Bundle savedInstanceState)

donde agregaremos el código que permitirá que esta actividad contenga el xml

antes creado

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.registro_usuario); }

Después de agregar el método se agregaran en primer lugar agregamos una

variable de tipo ConexionBD

Page 16: Aplicación zirconia

ConexionBD c;

Y en el método onCreate(Bundle savedInstanceState) establecemos la

conexión con el siguiente código:

c=new ConexionBD(this,"ZirconiaBD",null,1);

Al final tendremos esto:

public class Registro_usuario extends Activity{

ConexionBD c;

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.registro_usuario); c= new ConexionBD(this,"ZirconiaBD",null,4); }

}

Para capturar los valores de los EdiText primero debemos declarar las

variables y asignarles el EditText que corresponde a dicha variable

//Variables EditText

private EditText nombre,calle,telca,telcel,correo,nombreu,contrasenia;

Asignamos los EditText correspondientes a cada variable dentro del método

onCreate(Bundle savedInstanceState) de la siguiente manera

nombre=(EditText)findViewById(R.id.nombre);

calle=(EditText)findViewById(R.id.calle);

correo=(EditText)findViewById(R.id.correo);

telca=(EditText)findViewById(R.id.telca);

telcel=(EditText)findViewById(R.id.telcel);

nombreu=(EditText)findViewById(R.id.nombreu);

contrasenia=(EditText)findViewById(R.id.contrasenia);

Ahora definiremos el código de cada botón en el botón para ello agregaremos

los eventos Onclick necesarios para definir los métodos que ejecutaran las

instrucciones para que cada botón realice la acción correspondiente.

Para el botón Registrar se agregara el evento Onclick siguiendo la secuencia:

Click derecho sobre el botón Other PropertiesInherited from View

OnClicK agregamos el nombre del evento (Registrar) y damos Click en Ok

Page 17: Aplicación zirconia

Antes de comenzar debemos declarar los siguientes extra mensajes que nos

servirán mandar información a otra activida. final static String EXTRA_MESSAGEUSER = "Registro_usuario.MESSAGEUSER"; final static String EXTRA_MESSAGENOMBRE = "Registro_usuario.MESSAGENOMBRE"; final static String EXTRA_MESSAGEDIRECCION = "Registro_usuario.MESSAGEDIRECCION"; final static String EXTRA_MESSAGETELC = "Registro_usuario.MESSAGETELC"; final static String EXTRA_MESSAGETELCE = "Registro_usuario.MESSAGETELCE"; final static String EXTRA_MESSAGECORREO = "Registro_usuario.MESSAGECORREO"; final static String EXTRA_MESSAGEID = "Registro_usuario.MESSAGEID";

El código para el botón Registrar Onclick “Registrar” es el siguiente: public void Registrar(View view){ //Almacenamos temporalmente el valor de los EditText a las variables

para guardar la informacion en la Base de datos

String nom=nombre.getText().toString(); String call=calle.getText().toString(); String tela=telca.getText().toString(); String tele=telcel.getText().toString(); String nomu=nombreu.getText().toString(); String corre=correo.getText().toString(); String contrase=contrasenia.getText().toString(); SQLiteDatabase op=c.getWritableDatabase(); op.execSQL("INSERT INTO registro(id, nombre, calle, telefonoca, telefonocel, correo, nombreu, contrasenia) VALUES(null,'"+nom+"','"+call+"','"+tela+"','"+tele+"','"+corre+"','"+nomu+"','"+contrase+"')"); op.close(); /*Definimos un objeto de tipo Cursor el cual contiene el resultado de

la búsqueda.Para recorrer el cursor usaremos los métodos:

moveToFirst(): permite desplazarnos al inicio del cursor

moveToNext(): permite movernos al siguiente renglon del

cursor */

SQLiteDatabase o=c.getReadableDatabase(); Cursor cursor = o.rawQuery("SELECT* FROM registro WHERE nombreu='"+nomu+"' AND contrasenia='"+contrase+"'", null); if(cursor.moveToFirst()){ do{ Intent intent=new Intent(this,Perfil_usuario.class); intent.putExtra(EXTRA_MESSAGEID, cursor.getString(0)); intent.putExtra(EXTRA_MESSAGENOMBRE, cursor.getString(1)); intent.putExtra(EXTRA_MESSAGEDIRECCION, cursor.getString(2)); intent.putExtra(EXTRA_MESSAGETELC, cursor.getString(3)); intent.putExtra(EXTRA_MESSAGETELCE, cursor.getString(4)); intent.putExtra(EXTRA_MESSAGECORREO, cursor.getString(5)); intent.putExtra(EXTRA_MESSAGEUSER, cursor.getString(6)); startActivity(intent); } while(cursor.moveToNext()); } else { Toast.makeText(this, "¡Hay campos obligatorios!", Toast.LENGTH_LONG).show(); } cursor.close(); o.close(); }

Page 18: Aplicación zirconia

Como podemos observar dentro del botón registrar se efectual 2 acciones la primera es guardar un registro en la base de datos y el segundo es hacer una consulta de los datos guardados, se puede apreciar que dentro del cursor se encuentra un Intent y varios Extra_Mensajes que nos servirán para mandar información a otra actividad como se menciono anteriormente en este caso será a (Perfil_usuario.class) la cual recibirá los EXTRA_MENSAJE con la información obtenida del cursor al realizar la consulta.

El código para el botón Consultar Onclick “consultar” es el siguiente:

public void consulta(View v)

{

SQLiteDatabase op=c.getReadableDatabase();

Cursor cursor = op.rawQuery("SELECT* FROM registro ", null);

String resultados="";

if(cursor.moveToFirst()){

do{

resultados+=cursor.getString(0)+" | "+cursor.getString(1)+" |"+

cursor.getString(2)+" |"+cursor.getString(3)+"

|"+cursor.getString(4)+" |"+cursor.getString(5)+" |

"+cursor.getString(6)+" |"+ cursor.getString(7)+"\n";

}

while(cursor.moveToNext());

Toast.makeText(this, resultados, Toast.LENGTH_LONG).show();

}

cursor.close();

op.close();

}

El código para el botón Eliminar con el evento OnClick “Eliminar” es el

siguiente:

public void Eliminar(View view)

{ String nom=nombre.getText().toString();

SQLiteDatabase op=c.getWritableDatabase();

op.execSQL("DELETE FROM registro WHERE nombre='"+nom+"'");

Toast.makeText(this, "Eliminado", 1).show();

op.close();

}

}

Page 19: Aplicación zirconia

El botón Entrar verificara que los valores introducidos en los EditText sean

correctos en caso que no lo sean mandara un mensaje (Toast) de lo contrario

el usuario podrá entrar al Perfil de usuario.

Dentro de nuestra actividad principal agregaremos el siguiente código //variables de los EditText

private EditText nombreu,contrasenia;

//Mensajes que guardaran información para recibir en otra

actividad

final static String EXTRA_MESSAGE = "MenuPrincipal.MESSAGE";

final static String EXTRA_MESSAGE1 = "MenuPrincipal.MESSAGE1";

Asignamos los EditText correspondientes a cada variable dentro del método

onCreate(Bundle savedInstanceState) de la siguiente manera

nombreu=(EditText)findViewById(R.id.nombreu1);

contrasenia=(EditText)findViewById(R.id.contrasenia1);

Ahora creamos el método asociado al evento OnClick de botón entrar con el

siguiente código: public void Entrar(View v){

//Capturamos el valor de las variables EditText para realizar la

consulta

String nom=nombreu.getText().toString();

String con=contrasenia.getText().toString();

SQLiteDatabase op=c.getReadableDatabase();

Cursor cursor = op.rawQuery("SELECT* FROM registro

WHERE nombreu='"+nom+"' AND contrasenia='"+con+"'", null);

if(cursor.moveToFirst()){

do{

Intent intent=new

Intent(this,Perfil_usuario.class);

intent.putExtra(EXTRA_MESSAGE, cursor.getString(0));

intent.putExtra(EXTRA_MESSAGE1,

cursor.getString(6));

startActivity(intent);

}

while(cursor.moveToNext());

nombreu.setText("");

contrasenia.setText("");

}else{

//Verificamos los datos en caso de ser incorrectos mandar un Toast

Toast.makeText(this, "¡Verifique Nombre de usuario

o Contraseña!", Toast.LENGTH_LONG).show();

}

cursor.close();

op.close();

}

Page 20: Aplicación zirconia

Creamos una nueva clase, sobre el proyecto Click derecho New Class le ponemos de nombre Pantalla_Splash

Ahora crearemos un archive .xml llamado splash dentro de la carpeta layout, Click derecho New Android XML File, este archivo contendrá la interfaz la cual será visible para el usuario, después colocaremos la imagen que será colocada en la pantalla de inicio de nuestra aplicación, para esto debemos tener identificada la imagen en nuestra computadora después solo es de arrastrar la hasta la carpeta drawable-hdpi la cual es subcarpeta de res después nos pedirá que si deseamos copear dicha imagen en la carpeta le damos Ok para que se agregue, después en el archivo splash.xm colocamos el componente de ImageView sobre la pantalla de trabajo para ello después nos pedirá que imagen contendrá el componente, seleccionamos la imagen que habíamos agregado, la forma como quedaría seria la siguiente:

Descargar imagen http://bit.ly/18vcRzr

Page 21: Aplicación zirconia

Dentro de la clase Pantalla_Splash.java colocaremos un hilo al cual le daremos un tiempo de 3000 milisegundos(3 seg). public class Pantalla_Splash extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

Thread logoTimer = new Thread() {

public void run(){

try{

int logoTimer = 0;

while(logoTimer < 3000){

sleep(100);

logoTimer = logoTimer +100;

};

startActivity(new Intent("com.ZIRCONIA"));

}

catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally{

finish();

}

}

};

logoTimer.start();

}

}

Terminado los 3 segundos lanzara un intent haciendo llamar a otra pantalla MenuPrincipal.java la cual es declarada en el archivo AndroidManifest.xml de la siguiente manera: <activity

android:label="@string/app_name"

android:name=".MenuPrincipal" >

<intent-filter >

<action android:name="com.ZIRCONIA" />

<category android:name="android.intent.category.DEFAULT"/>

</intent-filter>

</activity> Dicha pantalla es declarado de forma DEFAULT para que esta sea la final en caso de hace un back en la aplicación y este back no llegue hasta la pantalla Splash.

Page 22: Aplicación zirconia

En esta aplicación tendremos una sección para el usuario para ello crearemos una clase llamada Perfil_usuario.java y un archivo XML llamado perfil_usuario.xml en el archivo XML, colocaremos dos botones y unos TextView donde se mandaran los datos personales del usuario como lo es el Nombre de usuario, Domicilio, Teléfono celular, Teléfono de casa y su Correo electrónico. Para ello nos vamos a crear las Strings en el archivo string.xml que está en la carpeta values al abrir el archivo nos saldrá de la siguiente forma:

Entonces le daremos al botón Add… para que nos de la opción de agregar un String nueva, saldrá una ventana como la siguiente:

Seleccionamos String después Ok para entonces solo colocaremos el nombre con el cual será identificada esa String

Des pues de tener todas String creadas se las asignamos a los TextView correspondientes.

Page 23: Aplicación zirconia

Los dos botones se los agregamos de la siguiente forma en layout perfil_usuario.xml con todo y sus propiedades: <Button

android:id="@+id/button1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:onClick="edit_inf_usuario"

android:text="@string/edi_inf_usuario"

android:layout_y="105dp"/>

<Button

android:id="@+id/button2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:onClick="galeriaprivada"

android:text="@string/app_galeriaprivada"

android:layout_y="150dp"/>

Desues agragamos un ListView de la siguiente forma en el mismo archivo <ListView

android:id="@+id/listafija"

android:layout_width="wrap_content"

android:layout_height="260dp" >

</ListView> La pantalla quedara:

Page 24: Aplicación zirconia

Para la funcionalidad de los botones será la siguiente: Generamos un OnClick llamado edit_inf_usuario para el primer botón

En código que se colocado será el siguiente: public void edit_inf_usuario(View v){

String Nombreu=nombreu.getText().toString();

SQLiteDatabase op=c.getReadableDatabase();

Cursor cursor = op.rawQuery("SELECT* FROM registro

WHERE nombreu='"+Nombreu+"'", null);

if(cursor.moveToFirst()){

do{

Intent intent=new Intent(this,Editar_info_usuario.class);

intent.putExtra(EXTRA_MESSAGEID, cursor.getString(0));

intent.putExtra(EXTRA_MESSAGENOM, cursor.getString(1));

intent.putExtra(EXTRA_MESSAGEDOM, cursor.getString(2));

intent.putExtra(EXTRA_MESSAGETELA, cursor.getString(3));

intent.putExtra(EXTRA_MESSAGETELC, cursor.getString(4));

intent.putExtra(EXTRA_MESSAGENOMU, cursor.getString(6));

startActivity(intent);

}

while(cursor.moveToNext());

}

cursor.close();

op.close();

}

De esta manera nos lanzara a la clase Editar_info_usuario.java para poder editar los datos personales del usuario.

Como son:

Nombre

Domicilio

Teléfono

Page 25: Aplicación zirconia

Un segundo OnClick para el segundo botón

En código que se colocado será el siguiente: public void galeriaprivada(View v){

String Nombreu=nombreu.getText().toString();

SQLiteDatabase op=c.getReadableDatabase();

Cursor cursor = op.rawQuery("SELECT* FROM registro

WHERE nombreu='"+Nombreu+"'", null);

if(cursor.moveToFirst()){

do{

Intent intent=new Intent(this,Galeria_privada.class);

intent.putExtra(EXTRA_MESSAGEID, cursor.getString(0));

startActivity(intent);

}

while(cursor.moveToNext());

}

cursor.close();

op.close();

} Este evento te lanza a la clase Galeria_privada.java mostrando los productos en venta.

Page 26: Aplicación zirconia

En la sección del componente de la lista se mostraran los productos comprados, para ello creamos una clase llamada adaptador.java public class adaptador extends ArrayAdapter<item> {

private Activity activity;

private List<item> items;

private item objBean;

private int row;

public adaptador(Activity act, int resource,List<item>

arrayList) {

super(act, resource, arrayList);

this.activity = act;

this.row = resource;

this.items = arrayList;

}

@Override

public View getView(final int position, View convertView, ViewGroup

parent) {

View view = convertView;

ViewHolder holder;

if (view == null) {

LayoutInflater inflater = (LayoutInflater) activity

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

view = inflater.inflate(row, null);

holder = new ViewHolder();

view.setTag(holder);

} else {

holder = (ViewHolder) view.getTag();

}

if ((items == null) || ((position + 1) > items.size()))

return view;

objBean = items.get(position);

holder.tvnombre = (TextView)

view.findViewById(R.id.tnombre);

holder.tvprecio = (TextView)

view.findViewById(R.id.tprecio);

holder.tvdescripcion = (TextView)

view.findViewById(R.id.tdescripcion);

if (holder.tvnombre != null && null != objBean.getNombre()&&

objBean.getNombre().trim().length() > 0) {

holder.tvnombre.setText(Html.fromHtml(objBean.getNombre()));

}

if (holder.tvprecio != null && null != objBean.getPrecio()

&& objBean.getPrecio().trim().length() > 0) {

holder.tvprecio.setText(Html.fromHtml(objBean.getPrecio()));

}

if (holder.tvdescripcion != null && null != objBean.getDescripcion()&&

objBean.getDescripcion().trim().length() > 0) {

holder.tvdescripcion.setText(Html.fromHtml(objBean.getDescripcio

n()));

}

return view;

}

public class ViewHolder {

public TextView tvnombre,tvprecio,tvdescripcion;

}

}

Page 27: Aplicación zirconia

En esta clase se colocaran arreglos donde tendrán función en base a una consulta para que esa cantidad de registros sea el tamaño de la lista y por consiguiente adapte la lista. El layout va relacionado con una clase llamada ítem.java la cual contiene los métodos los cuales interactuaran con el layout row.xml el cual contiene el diseño del ítem como se muestra:

Una vez ya la relación entre las clases y los layouts la pantalla final quedara de la siguiente forma:

Page 28: Aplicación zirconia

La lista tiene un evento onItemClick este evento lanza una ventana modal con la ayuda de esta podemos mostrar algunas funciones, estas son declaradas en el archivo string.xml de la siguiente forma: <string-array name="DIALOGO">

<item >Eliminar registro</item>

<item >Compartir en Facebook</item>

</string-array>

Evento onItemClick public void onItemClick(AdapterView<?> arg0, View arg1, int

posicion, long arg3) {

final int a=posicion;

AlertDialog.Builder dialogBuilder = new

AlertDialog.Builder(this);

dialogBuilder.setTitle("Selecciona");

dialogBuilder.setItems(R.array.DIALOGO, new

DialogInterface.OnClickListener() {

//@Override

public void onClick(DialogInterface dialog, int item)

{

// TODO Auto-generated method stub

if(item==0){

SQLiteDatabase op=c.getWritableDatabase();

op.execSQL("DELETE FROM Compras WHERE

idc='"+resultado.get(a).getIdc()+"'");

op.close();

Page 29: Aplicación zirconia

Actualiza_lista();

}

if(item==1){

compartir_compra();

}

}

});

dialogBuilder.setNegativeButton("CANCEL", new

DialogInterface.OnClickListener() {

//@Override

public void onClick(DialogInterface dialog, int

which){

// TODO Auto-generated method stub

}

});

AlertDialog alertDialog = dialogBuilder.create();

alertDialog.show();

}

Al ser seleccionado el primer ítem este ara una consulta y dependiendo del id del producto lo eliminara del historial de compras del usuario, si se selecciona el segundo llamara el método compartir_compra public void compartir_compra(){

SQLiteDatabase op=c.getReadableDatabase();

Cursor cursor = op.rawQuery("SELECT* FROM Compras where

id='"+IDREG+"'", null);

if(cursor.moveToFirst()){

do{

com_nombre=cursor.getString(2);

com_precio=cursor.getString(3);

com_descrip=cursor.getString(4);

}

while(cursor.moveToNext());

connectToFacebook();

}

cursor.close();

op.close();

}

Este método lo que hace es en base al registro cliqueado obtiene su id y guarda sus datos en las variables para después poder mandarlos compartir en el muro del Facebook, después de hacer la búsqueda de los campos se manda llamar el método connectToFacebook() el cual tiene la finalidad de declarar los permisos que la aplicación creada en Facebook tiene sobre el usuario en referencia al registro, algunos de los permisos que se piden son los siguientes: "user_activities",

"user_birthday",

"user_groups",

"user_likes",

"user_location",

"user_notes",

"user_online_presence",

"user_photo_video_tags",

"user_photos",

Page 30: Aplicación zirconia

Cuando el login es exitoso entonces te mandan los datos al muro del usuario que accedió a la red social mandando un mensaje de lo que se publicara :

Descarga la app: http://bit.ly/1giWDhw

CODIGO ACERCA DE ZIRCONIA

public void EnviarMensaje(View v){

Intent intent=new Intent(this,Acerca_de_Zirconia.class);

startActivity(intent);

}

1.- Se enlaza a la actividad Acerca_de_zirconia con el método Onclick EnviarMensaje

Page 31: Aplicación zirconia

android:text="Sucursal"

android:text="Av. Tecnológico #2000"

android:text="Col. Meseta de los Laureles"

android:text="La Piedad, Mich."

android:text="Tel: 3521130834"

android:text="Tienes dudas o sugerencias Envíanos un mensaje"

A cada textView fue modificado para que apareciera los datos que nosotros

queríamos, a los botones se declaran de tipo string, se agregan 3 text fields a dos de

ellos se les agrega el nombre de tipo string y aparecerá automáticamente dentro de la

caja de texto

<uses-permissionandroid:name="android.permission.CALL_PRIVILEGED"/>

public void llamar(View v){

Intent i=new Intent(Intent.ACTION_CALL);

i.setData(Uri.parse("tel:3521130834"));

startActivity(i);

}

}

Se agrega el permiso para la llamada automática, insertamos el método onClick que

se declara llamar y escribimos el numero que la gente podría ponerse en contacto a la

sucursal.

public class Acerca_de_Zirconia extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.acerca_de_zirconia);

}

public void enviar(View v){

EditText direcc=(EditText)findViewById(R.id.etdireccion);

EditText nom=(EditText)findViewById(R.id.etnombre);

EditText mjs=(EditText)findViewById(R.id.etasunto);

Page 32: Aplicación zirconia

String email=direcc.getText().toString();

String n=nom.getText().toString();

String m=mjs.getText().toString();

if (email.matches("")||n.matches("")||m.matches("")) {

Toast.makeText(this, "Todos los campos son obligatorios",

Toast.LENGTH_SHORT).show();

return;

}

else {

Intent correo=new Intent(Intent.ACTION_SEND);

correo.putExtra(Intent.EXTRA_EMAIL,new

String[]{"[email protected]"});

correo.putExtra(Intent.EXTRA_SUBJECT, n+", "+email);

correo.putExtra(Intent.EXTRA_TEXT, m);

correo.setType("message/rfc822");

startActivity(Intent.createChooser(correo, "Email"));

}

}

4.- En el botón enviar se inserta el método OnClick, a cada EditText se le pone

una variable los hacemos string obteniendo el email(etdireccion), n(etnombre),

m(etasunto), agregamos un if con un matches para que al usuario no se le

pase llenar todos lo campos, lo hace obligatorio, si se le pasa le enviara un msj

en un toast, todos los campos están llenos entonces el else permite enviar el

correo electrónico a la dirección que nosotros hemos puesto, se agrega el

permiso “message/rfc822”.

Page 33: Aplicación zirconia

ARCHIVO ANDROIDMANIFEST.XML <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.proyecto"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<uses-permission

android:name="android.permission.CALL_PRIVILEGED"/>

<application

android:icon="@drawable/zirconia"

android:label="@string/app_name" >

<activity

android:label="@string/app_name"

android:name=".MenuPrincipal" >

<intent-filter >

<action android:name="com.ZIRCONIA" />

<category

android:name="android.intent.category.DEFAULT"/>

</intent-filter>

</activity>

<activity

android:label="@string/app_name"

android:name=".Pantalla_Splash" >

<intent-filter >

<action android:name="android.intent.action.MAIN" />

<category

android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity

android:label="@string/app_registro"

android:name=".Registro_usuario" >

</activity>

<activity

android:label="@string/galeria"

android:name=".Galeria_publica" >

</activity>

<activity

android:label="@string/galeria"

android:name=".Galeria_privada" >

</activity>

<activity

android:label="@string/infor"

android:name=".Acerca_de_Zirconia" >

</activity>

<activity

android:label="@string/app_perfil_usuario"

android:name=".Perfil_usuario" >

</activity>

<activity

android:label="@string/app_perfil_usuario"

android:name=".Editar_info_usuario" >

</activity>

<activity

android:label="@string/app_acerca"

android:name=".Acerca_de_Zirconia" >

</activity>

</application>

</manifest>

Page 34: Aplicación zirconia

ARCHIVO STRING.XML <resources>

<string name="app_name">Zirconia</string>

<string name="bgaleria">Galeria de la tienda</string>

<string name="web">Ir a pagina web</string>

<string name="help">Acera de Zirconia</string>

<string name="ent">Entrar</string>

<string name="nom">Nombre</string>

<string name="call">Domicilio de calle</string>

<string name="tele">Telefono de casa</string>

<string name="telphone">Telefono celular</string>

<string name="emaile">Correo electronico</string>

<string name="nomusuario">Nombre de usuario</string>

<string name="contrasenia">Contraseña</string>

<string name="app_registro">Formulario de registro</string>

<string name="app_galeria">Galeria publica</string>

<string name="infor">Informacion sobre Zirconia</string>

<string name="reg">Registrar</string>

<string name="galeria">Galeria</string>

<string name="app_perfil_usuario">Perfil de usuario</string>

<string name="edi_inf_usuario">Editar información de

usuario</string>

<string name="app_editar_perfil">Editar perfil de usario</string>

<string name="guadar">Guardar</string>

<string name="app_galeriaprivada">Galeria Privada</string>

<string name="app_acerca">Contactanos</string>

<string name="enviar">Enviar</string>

<string name="descripcionn">Descripcion</string>

<string name="precioo">Precio</string>

<string-array name="DIALOGO">

<item >Eliminar registro</item>

<item >Compartir en Facebook</item>

</string-array>

<string-array name="DIALOGO2">

<item >Ver imagen</item>

<item >Comprar producto</item>

</string-array>

</resources>

Page 35: Aplicación zirconia

Pantalla oculta

Creamos un nuevo layout con el nombre de shadow a este layout le

colocamos el componente de ImageView, previamente debemos tener la

imagen ubicada en nuestra carpeta drawable-hdpi dentro del proyecto la

forma de la cual se mandara llamar es la siguiente:

Agregamos un implemento en clase Editar_info_usuario “implements

OnTouchListener”

En la misma clase colocaremos el siguiente código.

shadow=(ImageView)findViewById(R.id.zirconia);

shadow.setOnTouchListener(this);

public boolean onTouch(View v, MotionEvent e){

switch(e.getAction()){

case MotionEvent.ACTION_DOWN:

++i;

if (i==25){

Toast.makeText(this, "Zirconia art By Cristian

Jaramillo", 1).show();

setContentView(R.layout.shadow);

}

break;

}

return false;

}

De esta forma llamaremos al layout shadow.xml este evento se lleva a cabo

después de pulsar 25 veces sobre sobre la imagen Zirconia.