Вы находитесь на странице: 1из 117

APLICACIN MVIL PARA EVENTOS DEPORTIVOS

DANILSO DIAZ OSPINO


EDGAR PAEZ CARRILLO

UNIVERSIDAD DE LA COSTA
FACULTAD DE INGENIERA DE SISTEMA
COMPUTACIN MVIL
BARRANQUILLA
2015

EVENTOS DEPORTIVOS APP

DANILSO DIAZ OSPINO


EDGAR PAEZ CARRILLO

PROYECTO DE AULA

ROBERTO MORALES

UNIVERSIDAD DE LA COSTA
FACULTAD DE INGENIERA DE SISTEMAS
COMPUTACIN MVIL
BARRANQUILLA
2015

Nota de Aceptacin

Presidente del Jurado

Jurado

Jurado

Barranquilla 28/0572015

CONTENIDO

Pg.

Contenido
INTRODUCCIN ............................................................................................................... 8
OBJETIVOS ...................................................................................................................... 9
OBJETIVO GENERAL ................................................................................................... 9
OBJETIVOS ESPECFICOS .......................................................................................... 9
PLANTEAMIENTO DEL PROBLEMA .............................................................................. 10
DEFINICIN DEL PROBLEMA .................................................................................... 10
JUSTIFICACIN .......................................................................................................... 10
DISEO BASE DE LA DATOS .................................................................................... 11
DESCRIPCIN DE LA APLICACIN........................................................................... 12
DESARROLLO DEL PROYECTO ................................................................................... 13
INTERFACES DE LA APLICACIN MVIL ................................................................. 13
CDIGO DE LA APLICACIN MVIL ......................................................................... 27
CONCLUSIONES ......................................................................................................... 116
BIBLIOGRAFA .............................................................................................................. 117

LISTA DE FIGURAS
Pg
Figura 1. Diseo de la base de datos

13

Figura 2. Transicin de apertura

15

Figura 3. Interfaz de ingreso.

16

Figura 4. Interfaz de registro de datos

17

Figura 5. Interfaz de categoras de deportes

18

Figura 6. Interfaz del deporte futbol

19

Figura 7. Interfaz del basquetbol

20

Figura 8. Interfaz del deporte beisbol

21

Figura 9. Interfaz del deporte tenis

22

Figura 10. Interfaz para buscar por id de torneo

23

Figura 11. Interfaz para buscar por id de equipo

24

Figura 12. Interfaz de los equipos de un torneo

25

Figura 13. Interfaz de la lista de los torneos

26

Figura 14. Interfaz donde se listan los equipos

27

Figura 15. Interfaz cuando el usuario ha cerrado la sesin

28

GLOSARIO

SISTEMA OPERATIVO ANDROID: Android es un sistema operativo basado en el


ncleo Linux. Fue diseado principalmente para dispositivos mviles con pantalla
tctil, como telfonos inteligentes o tablets; y tambin para relojes inteligentes,
televisores y automviles.
APLICACIN MVIL: una aplicacin mvil, apli o app (en ingls) es una
aplicacin informtica diseada para ser ejecutada en telfonos inteligentes,
tabletas y otros dispositivos mviles.

RESUMEN

En este proyecto de aula concerniente a la materia de computacin mvil, se


propone la creacin de una aplicacin mvil que brinde a los organizadores o
gestores deportivos la facultad tecnolgica de llevar la administracin de los
eventos deportivos que desee crear. Est aplicacin permite al organizador
deportivo crear un evento tal como un torneo, apartir del cual puede crear los
equipos que lo conforman. Una vez hecho esto, el organizador pudo ver, revisar y
modificar la informacin de los torneos que cre (informacin que fue guardad en
la web), y as pudo gestionar todos sus eventos deportivos desde su celuar de
manera gil, eficiente y definitivamente ms cmoda, si la comparamos con la
anterior manera de registrar la informacin de los eventos, la cual era mediante
planillas de papel.

PALABRAS CLAVE: aplicacin mvil, telfonos inteligentes, sistema operativo


android.

INTRODUCCIN

Con la constante creacin y actualizacin que han tenido las aplicaciones mviles
y la concurrencia a ellas por parte de los usuarios, se ha aumentado la utilizacin
de dichas aplicaciones mviles en diversos campos, no solo en el empresarial sino
tambin en el educativo, cultural, deportivo y en las actividades diarias de las
personas.
Por ejemplo, en el campo empresarial las aplicaciones mviles cumplen tareas
tales como la revisin de inventarios, la revisin de nmina, la solicitud de pedidos,
etc. De modo que el alcance funcional que antes tenan los software de escritorio
hoy la pueden tener las aplicaciones mviles, permitiendo hacer mediante
aplicacin mvil todo lo que se puede con un software de computador, pero con la
ventaja que esto se hace desde un telfono mvil de una manera gil, cmoda y
eficiente.
Las aplicaciones para telfonos mviles estn cambiando la manera no solo de
hacer tecnologa sino tambin la forma de hacer empresa, esto es, la creciente
demanda de desarrollo de aplicaciones mviles por parte de las empresas en
busca de solucionar problemas de un modo definitivamente ms innovador. En la
educacin el uso de tabletas electrnicas ha solicitado la necesidad de crear
aplicaciones mviles que sirvan de espacio de conocimiento cientfico al
alumnado, como son las aulas virtuales, a las que los estudiantes acceden
mediante una tableta o celular. Tambin en el mbito cultural se han instalado las
aplicaciones mviles haciendo que la cultura vaya acompaada de la tecnologa
siendo difundida en la web. Asimismo en las dems actividades diarias de las
personas (recreacin, deporte, transporte) las aplicaciones mviles son
prometedoras. Su importancia ha llegado al punto de que en poco tiempo sern
pocos los contextos en los que no se utilice las aplicaciones mviles como el
medio que comunica a las personas con el mundo tecnolgico, empresarial,
cultural y social.

OBJETIVOS

OBJETIVO GENERAL
Permitir a los organizadores de eventos deportivos llevar la administracin de
estos.

OBJETIVOS ESPECFICOS
Desarrollar una aplicacin mvil para el sistema operativo android que permita al
usuario crear eventos deportivos tales como torneos segn diversas categoras
deportivas.

Disear interfaces de la aplicacin mvil que le permita al usuario, de manera


interactiva, ver la informacin de los eventos deportivos que cree.
Aplicar tanto desarrollo como el diseo planteado para lograr una funcionalidad
eficiente de la aplicacin mvil en el caso concerniente: la gestin de eventos
deportivos.

PLANTEAMIENTO DEL PROBLEMA

DEFINICIN DEL PROBLEMA


En el mbito deportivo son muchas las personas que se dedican a la gestin de
eventos deportivos. Llevar la informacin de un torneo y de los equipos que lo
conforman, revisar esta informacin y modificarla, son actividades que los
organizadores de eventos deportivos hacen de manera manual, esto es,
registrando todo en plantillas de papel. Este modo de registrar la informacin de
los eventos resulta tedioso para los organizadores deportivos, mxime cuando son
muchos los torneos que pueden conformar un evento deportivo. Modificar
susodicha informacin aun es ms engorroso cuando se hace en plantillas o
tableros de papel. El hecho es que si no se cambia esta manera de administrar
los eventos deportivos, los organizadores de estos seguirn llevando una serie de
tareas de formas poco eficientes y modernas en trminos de practicidad.

JUSTIFICACIN
Con el aumento de eventos deportivos que se realizan en la ciudad, nace la
necesidad de hacer de la administracin de dichos eventos una actividad ms
rpida, cmoda y moderna. Dadas estas necesidades de nuestra actualidad, qu
mejor que una aplicacin mvil la que, precisamente, brinda rapidez, comodidad y
modernidad, haciendo actividades diarias, como es este caso de la gestin de
eventos deportivos, de manera definitivamente prctica, eficiente y al alcance de
cualquier persona interesada en ello.

10

MARCO TERICO

DISEO DE LA BASE DE DATOS

Figura 1.

11

DESCRIPCIN DE LA APLICACIN MVIL

En primera instancia la aplicacin mvil permite al usuario registrarse, de tal


manera que de inmediato sus datos se guardan en la nube. Una vez registrado el
usuario accede a la aplicacin mediante su nombre de usuario y contrasea que
aparecen en la interfaz de ingreso. Acto seguido el usuario se encuentra con una
lista de deportes de diversas categoras, a los cuales se puede acceder haciendo
click en el icono correspondiente a cada deporte; esto lo dirigir a un formulario
que contiene los datos necesarios para el torneo que desee crear. Una vez creado
el torneo el usuario ya podr administrarlo, pudiendo ver la lista de torneos que ha
creado y editar su informacin cuando as lo quiera. A partir de esos torneos el
usuario puede crear equipos, en los cuales, al igual que en los torneos, tiene la
facultad de revisar y editar su informacin. De esta forma la aplicacin permite
una gil y eficiente manera de gestionar cada uno de los torneos del deporte que
fuere usando su celular y salvando su informacin en la web, solucionando la
tediosa necesidad de registrar todo en planillas de papel.

12

DESARROLLO DEL PROYECTO


.

INTERFACES DE LA APLICACIN MVIL


Transicin de apertura.

Figura 2.

13

Interfaz de ingreso

Figura 3.

14

Interfaz de registro de datos:

Figura 4.

15

Interfaz de categoras de deportes

Figura 5.

16

Interfaz del deporte futbol

Figura 6.

17

Interfaz del deporte basquetbol

Figura 7.

18

Interfaz del deporte beisbol

Figura 8.

19

Interfaz del deporte tenis

Figura 9.

20

Interfaz de administrador para buscar por id

Figura 10.

21

Figura 11.

22

Interfaz donde se crean los equipos

Figura 12.

23

Interfaz donde aparece la lista de torneos

Figura 13.

24

Interfaz donde lista los equipos

Figura 14.

25

Interfaz que aparece cuando el usuario ha cerrado sesin

Figura 15.

26

CDIGO DE LA APLICACIN MVIL


Cdigo de la actividad ingreso:
ingreso.java
package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Ingreso extends Activity implements OnClickListener {
private EditText user, pass;
private Button ingresar, registrar;
private ProgressDialog pDialog;
// Clase JSONParser
JSONParser jsonParser = new JSONParser();

27

// si trabajan de manera local "localhost" :


// En windows tienen que ir, run CMD > ipconfig
// buscar su IP
// y poner de la siguiente manera
// "http://xxx.xxx.x.x:1234/cas/login.php";
private static final String LOGIN_URL = "http://torneoapp.esy.es/app/login.php";
// La respuesta del JSON es
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ingreso);
// setup input fields
user = (EditText) findViewById(R.id.txtUsuario);
pass = (EditText) findViewById(R.id.txtPassword);
// setup buttons
ingresar = (Button) findViewById(R.id.login);
registrar = (Button) findViewById(R.id.regis);
// register listeners
ingresar.setOnClickListener(this);
registrar.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
new AttemptLogin().execute();
break;

28

case R.id.regis:
Intent i = new Intent(Ingreso.this, Registro.class);
startActivity(i);
break;
default:
break;
}
}
class AttemptLogin extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Ingreso.this);
pDialog.setMessage("Ingresando Porfavor espere...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
int success;
String username = user.getText().toString();
String password = pass.getText().toString();
try {
// Building Parameters
List params = new ArrayList();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
Log.d("request!", "starting");
// getting product details by making HTTP request
JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST",
params);
// check your log for json response
Log.d("Login attempt", json.toString());

29

// json success tag ingreso.java


package com.example.eventosdeportivos;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

30

import android.widget.EditText;
import android.widget.Toast;

public class Ingreso extends Activity implements OnClickListener {


private EditText user, pass;
private Button ingresar, registrar;

private ProgressDialog pDialog;

// Clase JSONParser
JSONParser jsonParser = new JSONParser();

// si trabajan de manera local "localhost" :


// En windows tienen que ir, run CMD > ipconfig
// buscar su IP
// y poner de la siguiente manera
// "http://xxx.xxx.x.x:1234/cas/login.php";

private static final String LOGIN_URL = "http://torneoapp.esy.es/app/login.php";

// La respuesta del JSON es


private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";

31

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ingreso);

// setup input fields


user = (EditText) findViewById(R.id.txtUsuario);
pass = (EditText) findViewById(R.id.txtPassword);

// setup buttons
ingresar = (Button) findViewById(R.id.login);
registrar = (Button) findViewById(R.id.regis);

// register listeners
ingresar.setOnClickListener(this);
registrar.setOnClickListener(this);

@Override
public void onClick(View v) {

32

switch (v.getId()) {
case R.id.login:
new AttemptLogin().execute();
break;
case R.id.regis:
Intent i = new Intent(Ingreso.this, Registro.class);
startActivity(i);
break;

default:
break;
}
}

class AttemptLogin extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Ingreso.this);
pDialog.setMessage("Ingresando Porfavor espere...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();

33

@Override
protected String doInBackground(String... args) {
int success;
String username = user.getText().toString();
String password = pass.getText().toString();
try {
// Building Parameters
List params = new ArrayList();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));

Log.d("request!", "starting");
// getting product details by making HTTP request
JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST",
params);

// check your log for json response


Log.d("Login attempt", json.toString());

// json success tag


success = json.getInt(TAG_SUCCESS);
if (success == 1) {

34

Log.d("Login Successful!", json.toString());


// save user data
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(Ingreso.this);
Editor edit = sp.edit();
edit.putString("username", username);
edit.commit();

Intent i = new Intent(Ingreso.this, Lista.class);


Bundle b = new Bundle();
b.putString("username",username); //se llama al usuario
i.putExtras(b);
//i.putExtra("username",username);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
} else {
Log.d("Login Fallido!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);

}
} catch (JSONException e) {
e.printStackTrace();
}

35

return null;

protected void onPostExecute(String file_url) {


// dismiss the dialog once product deleted
pDialog.dismiss();
if (file_url != null) {
Toast.makeText(Ingreso.this, file_url, Toast.LENGTH_LONG).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.micorreo, menu);
return true;
}

36

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.contacto:
Intent i = new Intent(this, Contacto.class);
startActivity(i);
return true;

case R.id.salir:
finish();
return true;

}
return false;
}

activity_ingreso
<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"

37

android:layout_height="match_parent"
android:background="@drawable/futbol"
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=".Ingreso" >

<ImageView
android:id="@+id/icono"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleType="center"
android:contentDescription="@string/imagen"
android:src="@drawable/ic_launcher" />

<TextView
android:id="@+id/cerrarsesion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/usuario"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#FFFFFF" />

<EditText

38

android:id="@+id/txtUsuario"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textColor="#FFFFFF"
android:inputType="text" >

<requestFocus />
</EditText>

<TextView
android:id="@+id/usuario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password"
android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
android:id="@+id/txtPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textColor="#FFFFFF"
android:inputType="textPassword" />

<Button

39

android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/key"
android:gravity="center"
android:text="@string/login"
android:textColor="#FFFFFF" />

<Button
android:id="@+id/regis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/registro"
android:text="@string/registro" />

</LinearLayout>

success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Login Successful!", json.toString());
// save user data
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(Ingreso.this);
Editor edit = sp.edit();
edit.putString("username", username);
edit.commit();
Intent i = new Intent(Ingreso.this, Lista.class);
Bundle b = new Bundle();
40

b.putString("username",username); //se llama al usuario


i.putExtras(b);
//i.putExtra("username",username);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
} else {
Log.d("Login Fallido!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {


// dismiss the dialog once product deleted
pDialog.dismiss();
if (file_url != null) {
Toast.makeText(Ingreso.this, file_url, Toast.LENGTH_LONG).show();
}
}

@Override

41

public boolean onCreateOptionsMenu(Menu menu) {


// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.micorreo, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.contacto:
Intent i = new Intent(this, Contacto.class);
startActivity(i);
return true;
case R.id.salir:
finish();
return true;
}
return false;
}

}
activity_ingreso
<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/futbol"
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=".Ingreso" >
<ImageView
android:id="@+id/icono"

42

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleType="center"
android:contentDescription="@string/imagen"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/cerrarsesion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/usuario"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#FFFFFF" />
<EditText
android:id="@+id/txtUsuario"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textColor="#FFFFFF"
android:inputType="text" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/usuario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password"
android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/txtPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textColor="#FFFFFF"
android:inputType="textPassword" />
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

43

android:layout_gravity="center"
android:drawableLeft="@drawable/key"
android:gravity="center"
android:text="@string/login"
android:textColor="#FFFFFF" />
<Button
android:id="@+id/regis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/registro"
android:text="@string/registro" />
</LinearLayout>

Cdigo de la actividad inicio:


inicio.java
package com.example.eventosdeportivos;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.Window;
public class Inicio extends Activity {
protected boolean activo = true;
protected int Tiempo = 1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_inicio);
Thread splashThread = new Thread(){
@Override
public void run(){

44

try{
int espera =0;
while(activo && (espera < Tiempo)){
sleep(100);
if (activo){
espera += 100;
}
}
}catch (InterruptedException e){
}finally{
abrirApp();
}
}
};
splashThread.start();
}
private void abrirApp(){
finish();
startActivity(new Intent (this, Ingreso.class));
}
}
activity_inicio.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="@drawable/nuevo" >
</LinearLayout>

Cdigo de la actividad de registro:


registro.java
package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.List;

45

import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Vibrator;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.Toast;
public class Registro extends Activity implements OnClickListener {
private EditText usuario, pass, nombre, ape, edad, correo;

private Button registrar;


private RadioButton masculino, femenino;
// private TabHost tabs;
// Progress Dialog
private ProgressDialog pDialog;
// JSON parser class
JSONParser jsonParser = new JSONParser();
//si lo trabajan de manera local en xxx.xxx.x.x va su ip local
// private static final String REGISTER_URL = "http://xxx.xxx.x.x:1234/cas/register.php";
//testing on Emulator:
private static final String REGISTER_URL = "http://torneoapp.esy.es/app/register.php";

46

//ids
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registro);
//
tabs= (TabHost) findViewById(R.id.panelTab);
//tabs.setup();
//TabHost.TabSpec spec = tabs.newTabSpec("Tab1");
//spec.setContent(R.id.tab1);
//spec.setIndicator("Datos de Registro");
//tabs.addTab(spec);
//spec = tabs.newTabSpec("Tab2");
//spec.setContent(R.id.tab2);
//spec.setIndicator("Ingresar");
//tabs.addTab(spec);
//tabs.setCurrentTab(0);
usuario = (EditText)findViewById(R.id.txtusua);
pass = (EditText)findViewById(R.id.txtpass);
nombre = (EditText)findViewById(R.id.txtnombre);
ape =(EditText)findViewById(R.id.txtape);
edad = (EditText)findViewById(R.id.txtedad);
correo = (EditText)findViewById(R.id.txtcorreo);
masculino = (RadioButton) findViewById(R.id.radio0);
femenino = (RadioButton) findViewById(R.id.radio1);
ImageButton limpiar = (ImageButton) findViewById(R.id.btnlimpiar);
// button click event
limpiar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

47

usuario.setText("");
pass.setText("");
nombre.setText("");
ape.setText("");
edad.setText("");
correo.setText("");
}
});

registrar = (Button)findViewById(R.id.btnregistra);
registrar.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if(validar()){
new CrearUsuario().execute(); //creando usuarios de la app
}else{
err_crear();
}
}

public boolean validar(){


if (usuario.getText().toString().trim().equals("")){
return false;
}else if(pass.getText().toString().trim().equals("")){
return false;
}else if(nombre.getText().toString().trim().equals("")){
return false;
}else if (ape.getText().toString().trim().equals("")){
return false;
}else if(edad.getText().toString().trim().equals("")){
return false;

48

}else if(correo.getText().toString().trim().equals("")){
return false;
}else if(!masculino.isChecked()&& !femenino.isChecked() ){
return false;
}else{
return true;
}
}

class CrearUsuario extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Registro.this);
pDialog.setMessage("Creando Usuario...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
// Check for success tag
int success;
String username = usuario.getText().toString();
String password = pass.getText().toString();
String nomb = nombre.getText().toString();
String apellido = ape.getText().toString();
String e = edad.getText().toString();
String email = correo.getText().toString();
String sexo="";
if(masculino.isChecked()){

49

sexo="Masculino";
}else if(femenino.isChecked()){
sexo="Femenino";
}
try {
// Building Parameters
List params = new ArrayList();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
params.add(new BasicNameValuePair("name", nomb));
params.add(new BasicNameValuePair("lastname", apellido));
params.add(new BasicNameValuePair("age", e));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("sex", sexo));
Log.d("request!", "starting");
//Posting user data to script
JSONObject json = jsonParser.makeHttpRequest(
REGISTER_URL, "POST", params);
// full json response
Log.d("Registering attempt", json.toString());
// json success element
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("User Created!", json.toString());
Intent i = new Intent(Registro.this, Lista.class);
Bundle b = new Bundle();
b.putString("username",username);
i.putExtras(b);
//i.putExtra("username",username);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
}else{
Log.d("Registering Failure!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);

50

}
} catch (JSONException exe) {
exe.printStackTrace();
}
return null;
}
public void borrar(View view){
if(validar()){
usuario.setText("");
pass.setText("");
nombre.setText("");
ape.setText("");
edad.setText("");
correo.setText("");

}else{
Toast toast2 = Toast.makeText(getApplicationContext(),"Datos incompletos, que
pretendes Borrar?", Toast.LENGTH_SHORT);
toast2.show();
}
}

protected void onPostExecute(String file_url) {


// dismiss the dialog once product deleted
pDialog.dismiss();
if (file_url != null){
Toast.makeText(Registro.this, file_url, Toast.LENGTH_LONG).show();
}
}
}

51

public void err_crear(){


Vibrator vibrator =(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(200);
Toast toast1 = Toast.makeText(getApplicationContext(),"Datos incompletos
digite todos los campos", Toast.LENGTH_SHORT);
toast1.show();
}
}
activity_registro.xml
<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/fondoregistro"
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=".Registro" >
<TextView
android:id="@+id/tid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/usuario"
android:textColor="#FFFFFF"/>
<EditText
android:id="@+id/txtusua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/escribausuario"
android:inputType="text"
android:textColor="#FFFFFF" >
<requestFocus />
</EditText>
<TextView

52

android:id="@+id/nombretorneo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password"
android:textColor="#FFFFFF"/>
<EditText
android:id="@+id/txtpass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/escribapass"
android:inputType="textPassword"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/lblnombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nombre"
android:textColor="#FFFFFF"/>
<EditText
android:id="@+id/txtnombre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/escribanombre"
android:inputType="text"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/apellido"
android:textColor="#FFFFFF"/>
<EditText
android:id="@+id/txtape"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/escribaape"
android:inputType="text"
android:textColor="#FFFFFF" />

53

<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/edad"
android:textColor="#FFFFFF"/>
<EditText
android:id="@+id/txtedad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/escribaedad"
android:inputType="number"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/correo"
android:textColor="#FFFFFF"/>
<EditText
android:id="@+id/txtcorreo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/correo"
android:inputType="textEmailAddress"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sexo"
android:textColor="#FFFFFF"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"

54

android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/masculino"
android:textColor="#FFFFFF"/>
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/femenini"
android:textColor="#FFFFFF"/>
</RadioGroup>
<Button
android:id="@+id/btnregistra"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/registro"
android:textColor="#FFFFFF" />
<ImageButton
android:id="@+id/btnlimpiar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/botonlimpiar"
android:src="@drawable/limpiar" />
</LinearLayout>
</LinearLayout>

Cdigo de la actividad crear torneo:


Creartorneo.java
package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;

55

import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Vibrator;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.Toast;
public class Creartorneo extends Activity {
// Progress Dialog
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
private EditText cod;
private EditText nombretorneo;
private EditText lugartorneo;
private EditText ciudad;
private EditText modalidadtorneo;
private EditText fechainiciotorneo;
private EditText fechafintorneo;
private EditText deporte;
private TabHost tabs;
private static String url_creartorneo =
"http://torneoapp.esy.es/crudtorneo/crear_torneo.php";

private static final String TAG_SUCCESS = "success";


//private static final String TAG_MENSAJE = "message";

56

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_creartorneo);
cod = (EditText) findViewById(R.id.txtcodigotorneo);
nombretorneo = (EditText) findViewById(R.id.txtnombredeltorneo);
lugartorneo = (EditText) findViewById(R.id.txtlugartorneo);
ciudad = (EditText) findViewById(R.id.txtciudadtorneo);
modalidadtorneo = (EditText) findViewById(R.id.txtmodalidaddeltorneo);
fechainiciotorneo= (EditText) findViewById(R.id.txtfechainiciodeltorneo);
fechafintorneo= (EditText) findViewById(R.id.txtfechafindeltorneo);
deporte= (EditText) findViewById(R.id.txtdeportetorneo);
tabs= (TabHost) findViewById(R.id.panelTab);
tabs.setup();
TabHost.TabSpec spec = tabs.newTabSpec("Tab1");
spec.setContent(R.id.tab1);
spec.setIndicator("Datos de Registro del torneo");
tabs.addTab(spec);
spec = tabs.newTabSpec("Tab2");
spec.setContent(R.id.tab2);
spec.setIndicator("Ingresar Torneo");
tabs.addTab(spec);
tabs.setCurrentTab(0);
Button guardartorneo = (Button) findViewById(R.id.guardar);
// button click event
guardartorneo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(validar()){
new CrearTorneo().execute(); //creando torneo de futbol
}else{

57

err_crear();
}
}
});
}
public boolean validar(){
if (cod.getText().toString().trim().equals("")){
return false;
}else if(nombretorneo.getText().toString().trim().equals("")){
return false;
}else if(lugartorneo.getText().toString().trim().equals("")){
return false;
}else if (ciudad.getText().toString().trim().equals("")){
return false;
}else if(modalidadtorneo.getText().toString().trim().equals("")){
return false;
}else if(fechainiciotorneo.getText().toString().trim().equals("")){
return false;
}else if (fechafintorneo.getText().toString().trim().equals("")){
return false;
}else if (deporte.getText().toString().trim().equals("")){
return false;
}else{
return true;
}
}
class CrearTorneo extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Creartorneo.this);
pDialog.setMessage("Registrando Torneo de futbol...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}

58

/**
* Creaando torneos
* */
protected String doInBackground(String... args) {
String codigo = cod.getText().toString();
String nombre = nombretorneo.getText().toString();
String lugar = lugartorneo.getText().toString();
String ciu = ciudad.getText().toString();
String modalidad = modalidadtorneo.getText().toString();
String fechai = fechainiciotorneo.getText().toString();
String fechaf = fechafintorneo.getText().toString();
String depor = deporte.getText().toString();
try {
//trabajando con parametros del POSt
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("nombretorneo", nombre));
params.add(new BasicNameValuePair("codigo", codigo));
params.add(new BasicNameValuePair("lugar", lugar));
params.add(new BasicNameValuePair("ciudad",ciu));
params.add(new BasicNameValuePair("modalidad", modalidad));
params.add(new BasicNameValuePair("fecha_i", fechai));
params.add(new BasicNameValuePair("fecha_f", fechaf));
params.add(new BasicNameValuePair("deporte", depor));
//se obtiene el objeto JSON mediante la respuesta http
JSONObject json = jsonParser.makeHttpRequest(url_creartorneo,
"POST", params);

Log.d("Create Response", json.toString());

int success = json.getInt(TAG_SUCCESS);


if (success == 1) {
// el torneo se crea correctamente
Intent i = new Intent(Creartorneo.this,

59

EquiposFutbol.class);
Bundle b = new Bundle();
b.putString("nombretorneo",nombre);
i.putExtras(b);
startActivity(i);
//finish();

} else {
// falla al crear el torneo
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}

protected void onPostExecute(String file_url) {


pDialog.dismiss();
}
public void err_crear(){
Vibrator vibrator =(Vibrator)
getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(200);
Toast toast1 = Toast.makeText(getApplicationContext(),"Datos
incompletos", Toast.LENGTH_SHORT);
toast1.show();
}

60

}
activity_crear_torneo.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondotorneofutbol"
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=".Creartorneo" >
<TabHost
android:id="@+id/panelTab"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tid"

61

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/codigo" />
<EditText
android:id="@+id/txtcodigotorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/nombretorneo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nomtorneo" />
<EditText
android:id="@+id/txtnombredeltorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lugar" />
<EditText
android:id="@+id/txtlugartorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

62

<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ciudad" />
<EditText
android:id="@+id/txtciudadtorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/modalidad" />
<EditText
android:id="@+id/txtmodalidaddeltorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fechaini" />
<EditText
android:id="@+id/txtfechainiciodeltorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/formatofecha"
android:inputType="text" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fechafin" />

63

<EditText
android:id="@+id/txtfechafindeltorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/formatofecha"
android:inputType="text" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/depor" />
<EditText
android:id="@+id/txtdeportetorneo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:cursorVisible="false"
android:ems="10"
android:focusable="false"
android:focusableInTouchMode="false"
android:inputType="text"
android:text="@string/futbol" />
<Button
android:id="@+id/guardar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/trofeo"
android:text="@string/ingresartorneo" >
</Button>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>

Cdigo de la actividad que lista los torneos:


todoslostorneos.java

64

package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class Todoslostorneos extends ListActivity {
private ProgressDialog pDialog;
// Creating JSON Parser object
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> torneosList;
// url to get all products list
private static String url_torneos
="http://torneoapp.esy.es/reportetorneo/reporte_pdo.php";
// JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_TORNEOS = "torneos";

65

private static final String TAG_PID = "id";


private static final String TAG_NAME = "nombretorneo";
// products JSONArray
JSONArray torneos = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_todoslostorneos);
// Hashmap for ListView
torneosList = new ArrayList<HashMap<String, String>>();
// Loading products in Background Thread
new CargarTorneos().execute();
// Get listview
ListView lv = getListView();
// on seleting single product
// launching Edit Product Screen
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View
view,
int position, long id) {
// getting values from selected ListItem
String pid = ((TextView)
view.findViewById(R.id.tid)).getText()
.toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(),
EditarTorneos.class);
// sending pid to next activity
in.putExtra(TAG_PID, pid);
// starting new activity and expecting some
response back

66

startActivityForResult(in, 100);
}
});
}
// Response from Edit Product Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// if result code 100
if (resultCode == 100) {
// if result code 100 is received
// means user edited/deleted product
// reload this screen again
Intent intent = getIntent();
finish();
startActivity(intent);
}
}
/**
* Background Async Task to Load all product by making HTTP Request
* */
class CargarTorneos extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Todoslostorneos.this);
pDialog.setMessage("Cargando torneos. Porfavor espere...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
/**

67

* getting All products from url


* */
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_torneos, "GET",
params);
// Check your log cat for JSON reponse
Log.d("All Products: ", json.toString());
try {
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// products found
// Getting Array of Products
torneos = json.getJSONArray(TAG_TORNEOS);
// looping through All Products
for (int i = 0; i < torneos.length(); i++) {
JSONObject c = torneos.getJSONObject(i);
// Storing each json item in variable
String tid = c.getString(TAG_PID);
String nombre = c.getString(TAG_NAME);
// creating new HashMap
HashMap<String, String> map = new
HashMap<String, String>();
// adding each child node to HashMap key
=> value
map.put(TAG_PID, tid);
map.put(TAG_NAME, nombre);
// adding HashList to ArrayList
torneosList.add(map);

68

}
} else {
// no products found
// Launch Add New product Activity
Intent i = new Intent(getApplicationContext(),
Creartorneo.class);
// Closing all previous activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
Todoslostorneos.this, torneosList,
R.layout.control, new String[] {
TAG_PID,
TAG_NAME},
new int[] { R.id.tid, R.id.nombre });
// updating listview
setListAdapter(adapter);
}
});

69

}
}

}
activity_todos_los_torneos.xml
<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: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=".Todoslostorneos" >
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>

</LinearLayout>

Cdigo de la actividad para crear un deporte deseado:


creartorneobaseball.java
package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;

70

import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Vibrator;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.Toast;
public class CreartorneoBaseball extends Activity {
// Progress Dialog
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
private EditText cod;
private EditText nombretorneo;
private EditText lugartorneo;
private EditText ciudad;
private EditText modalidadtorneo;
private EditText fechainiciotorneo;
private EditText fechafintorneo;
private EditText deporte;
private TabHost tabs;

private static String url_creartorneo =


"http://torneoapp.esy.es/crudtorneo/crear_torneo.php";

private static final String TAG_SUCCESS = "success";


//private static final String TAG_MENSAJE = "message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_creartorneo_baseball);

71

cod = (EditText) findViewById(R.id.txtcodigotorneobaseball);


nombretorneo = (EditText) findViewById(R.id.txtnombredeltorneobaseball);
lugartorneo = (EditText) findViewById(R.id.txtlugartorneobaseball);
ciudad = (EditText) findViewById(R.id.txtciudadtorneobaseball);
modalidadtorneo = (EditText) findViewById(R.id.txtmodalidaddeltorneobaseball);
fechainiciotorneo= (EditText) findViewById(R.id.txtfechainiciodeltorneobaseball);
fechafintorneo= (EditText) findViewById(R.id.txtfechafindeltorneobaseball);
deporte= (EditText) findViewById(R.id.txtbaseball);
tabs= (TabHost) findViewById(R.id.panelTab);
tabs.setup();
TabHost.TabSpec spec = tabs.newTabSpec("Tab1");
spec.setContent(R.id.tab1);
spec.setIndicator("Datos de Registro del torneo");
tabs.addTab(spec);
spec = tabs.newTabSpec("Tab2");
spec.setContent(R.id.tab2);
spec.setIndicator("Ingresar Torneo");
tabs.addTab(spec);
tabs.setCurrentTab(0);
Button guardartorneo = (Button) findViewById(R.id.guardarbaseball);
// button para guardar torneo
guardartorneo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(validar()){
new CrearTorneoBaseball().execute(); //creando torneo de futbol
}else{
err_crear();
}
}
});

72

//valida que todos los campos esten llenos o vacios


public boolean validar(){
if (cod.getText().toString().trim().equals("")){
return false;
}else if(nombretorneo.getText().toString().trim().equals("")){
return false;
}else if(lugartorneo.getText().toString().trim().equals("")){
return false;
}else if (ciudad.getText().toString().trim().equals("")){
return false;
}else if(modalidadtorneo.getText().toString().trim().equals("")){
return false;
}else if(fechainiciotorneo.getText().toString().trim().equals("")){
return false;
}else if (fechafintorneo.getText().toString().trim().equals("")){
return false;
}else if (deporte.getText().toString().trim().equals("")){
return false;
}else{
return true;
}
}
class CrearTorneoBaseball extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(CreartorneoBaseball.this);
pDialog.setMessage("Registrando Torneo de Baseball...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Creating Torneo de baseball

73

* */
protected String doInBackground(String... args) {
String codigo = cod.getText().toString();
String nombre = nombretorneo.getText().toString();
String lugar = lugartorneo.getText().toString();
String ciu = ciudad.getText().toString();
String modalidad = modalidadtorneo.getText().toString();
String fechai = fechainiciotorneo.getText().toString();
String fechaf = fechafintorneo.getText().toString();
String depor = deporte.getText().toString();
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("nombretorneo", nombre));
params.add(new BasicNameValuePair("codigo", codigo));
params.add(new BasicNameValuePair("lugar", lugar));
params.add(new BasicNameValuePair("ciudad",ciu));
params.add(new BasicNameValuePair("modalidad", modalidad));
params.add(new BasicNameValuePair("fecha_i", fechai));
params.add(new BasicNameValuePair("fecha_f", fechaf));
params.add(new BasicNameValuePair("deporte", depor));

JSONObject json = jsonParser.makeHttpRequest(url_creartorneo,


"POST", params);

Log.d("Create Response", json.toString());

int success = json.getInt(TAG_SUCCESS);


if (success == 1) {
// el torneo se crea correctamente
Intent i = new Intent(CreartorneoBaseball.this,
EquiposBaseball.class);
Bundle b = new Bundle();
b.putString("nombretorneo",nombre);

74

i.putExtras(b);
startActivity(i);
//finish();

} else {
// falla al crear el torneo
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}

protected void onPostExecute(String file_url) {


// dismiss the dialog once done
pDialog.dismiss();
}
public void err_crear(){
Vibrator vibrator =(Vibrator)
getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(200);
Toast toast1 = Toast.makeText(getApplicationContext(),"Datos
incompletos", Toast.LENGTH_SHORT);
toast1.show();
}

}
activity_crear_torneo_baseball.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

75

xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondobaseball"
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=".CreartorneoBaseball" >
<TabHost
android:id="@+id/panelTab"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/codigo" />
<EditText

76

android:id="@+id/txtcodigotorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/nombretorneo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nomtorneo" />
<EditText
android:id="@+id/txtnombredeltorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lugar" />
<EditText
android:id="@+id/txtlugartorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

77

android:text="@string/ciudad" />
<EditText
android:id="@+id/txtciudadtorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/modalidad" />
<EditText
android:id="@+id/txtmodalidaddeltorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fechaini" />
<EditText
android:id="@+id/txtfechainiciodeltorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fechafin" />
<EditText
android:id="@+id/txtfechafindeltorneobaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"

78

android:inputType="text" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/depor" />
<EditText
android:id="@+id/txtbaseball"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:inputType="text"
android:text="@string/baseball" />
<Button
android:id="@+id/guardarbaseball"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/trofeo"
android:text="@string/ingresartorneo" >
</Button>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>

Cdigo de la actividad que muestra los equipos de un torneo:


equiposfutbol.java
package com.example.eventosdeportivos;

import java.util.ArrayList;
import java.util.List;

79

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Vibrator;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class EquiposFutbol extends Activity {
String nombretorneo;
TextView nomtorneo;
EditText equipo1, equipo2, equipo3, equipo4;
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();

private static String url_crearequipos =


"http://torneoapp.esy.es/crearequipos/crear_equipo.php";
// JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_equipos_futbol);

80

nomtorneo = (TextView) findViewById(R.id.nombrtorneofutbol);


equipo1 = (EditText) findViewById(R.id.equipofut1);
equipo2 = (EditText) findViewById(R.id.equipofut2);
equipo3 = (EditText) findViewById(R.id.equipofut3);
equipo4 = (EditText) findViewById(R.id.equipofut4);
Bundle bundle = this.getIntent().getExtras();
nomtorneo.setText(bundle.getString("nombretorneo"));//Nombre del torneo

Button registrar = (Button) findViewById(R.id.registrarequiposfut);


// button click event
registrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(validar()){
new CrearEquipoFutbol().execute(); //creando equipos de futbol
}else{
err_crear();
}
}
});

Button borrar = (Button) findViewById(R.id.borrar);


// button click event
borrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
equipo1.setText("");
equipo2.setText("");
equipo3.setText("");
equipo4.setText("");

81

}
});
}
public boolean validar(){
if (nomtorneo.getText().toString().trim().equals("")){
return false;
}else if(equipo1.getText().toString().trim().equals("")){
return false;
}else if(equipo2.getText().toString().trim().equals("")){
return false;
}else if (equipo3.getText().toString().trim().equals("")){
return false;
}else if (equipo4.getText().toString().trim().equals("")){
return false;
}else{
return true;
}
}
class CrearEquipoFutbol extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(EquiposFutbol.this);
pDialog.setMessage("Registrando Equipos de futbol...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Creating equipos
* */
protected String doInBackground(String... args) {
String nombre = nomtorneo.getText().toString();
String equi1 = equipo1.getText().toString();
String equi2 = equipo2.getText().toString();

82

String equi3 = equipo3.getText().toString();


String equi4 = equipo4.getText().toString();

try {
// trabajando parametros del post
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("nombretorneo", nombre));
params.add(new BasicNameValuePair("equipo1", equi1));
params.add(new BasicNameValuePair("equipo2", equi2));
params.add(new BasicNameValuePair("equipo3",equi3));
params.add(new BasicNameValuePair("equipo4", equi4));

JSONObject json = jsonParser.makeHttpRequest(url_crearequipos,


"POST", params);

Log.d("Create Response", json.toString());

int success = json.getInt(TAG_SUCCESS);


if (success == 1) {
//los equipos de futbol se crea correctamente
Intent i = new Intent(getApplicationContext(), Lista.class);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
//finish();

} else {
return json.getString(TAG_MESSAGE); // falla al crear
equipos de futbol
}

83

} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}

protected void onPostExecute(String file_url) {


pDialog.dismiss();
}
public void err_crear(){
Vibrator vibrator =(Vibrator)
getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(200);
Toast toast1 = Toast.makeText(getApplicationContext(),"Debe ingresar
los equipos de futbol", Toast.LENGTH_SHORT);
toast1.show();
}
//Definimos que para cuando se presione la tecla BACK no volvamos para atras
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Toast toast2 = Toast.makeText(getApplicationContext(),"Ya ha registrado
este torneo, continue con el registro de Equipos", Toast.LENGTH_SHORT);
toast2.show();
return true;
}
return super.onKeyDown(keyCode, event);
}

84

}
activity_equipos_futbol.xml
<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/fondotorneofutbol"
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=".EquiposFutbol" >
<TextView
android:id="@+id/label1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nomtorneo"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/balonfutbol"
android:src="@drawable/balonfutbol" />
<TextView
android:id="@+id/nombrtorneofutbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_gravity="center"/>
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="1">
<TableRow>

85

<TextView
android:layout_column="1"
android:padding="3dip"
android:text="@string/Equiposfutbol" />
</TableRow>
<EditText
android:id="@+id/equipofut1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/Equipo1"
android:inputType="text" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/equipofut2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/equipo2"
android:inputType="text" />
<EditText
android:id="@+id/equipofut3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/equipo3"
android:inputType="text" />
<EditText
android:id="@+id/equipofut4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/equipo4"
android:inputType="text" />
<View
android:layout_height="2dip"
android:background="#FF909090" />

86

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/registrarequiposfut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/bande"
android:text="@string/registrarequipo" />
<Button
android:id="@+id/borrar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/limpiar"
android:text="@string/borrardatosequipos" />
</LinearLayout>
</TableLayout>

</LinearLayout>

Cdigo de la actividad que la administracin general de torneos:


codigo Administrador.java
package com.example.eventosdeportivos;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
public class Administrador extends Activity {

87

//Button btnlistado;
ImageView listado, listadoequipos;
String busquedapor="";
EditText buscar;
Button busqueda;
private static final String TAG_PID = "id";
private static final String TAG_BUSCAR = "buscar";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_administrador);
listado = (ImageView) findViewById(R.id.imageView1);
listadoequipos = (ImageView) findViewById(R.id.imageView2);
busqueda = (Button) findViewById (R.id.btnbuscar);
final Spinner opcionbuscar = (Spinner)findViewById(R.id.spinnerbusqueda);
final String[] datos =
new String[]{"Id","Nombre"};
ArrayAdapter<String> adaptador =
new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_checked, datos);
adaptador.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
opcionbuscar.setAdapter(adaptador);
opcionbuscar.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent,
android.view.View v, int position, long id) {
busquedapor= datos[position];
}
public void onNothingSelected(AdapterView<?> parent) {
busquedapor ="Id";
}

88

});
listado.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// muestra toda la lista de los torneos creados
Intent i = new Intent(Administrador.this, Todoslostorneos.class);
startActivity(i);
}
});

listadoequipos.setOnClickListener(new View.OnClickListener() {
//se muestra la lista de el nombre de torneo y equipos correspondientes
@Override
public void onClick(View view) {
// Launching All products Activity
Intent i = new Intent(Administrador.this, ListEquipos.class);
startActivity(i);
}
});

busqueda.setOnClickListener(new View.OnClickListener() {
//se realiza la busqueda por id o por el nombre del torneo
@Override
public void onClick(View view) {
if(busquedapor.equals("Id")){
// getting values from selected ListItem
buscar = (EditText) findViewById(R.id.txtbuscar);
String TID;
TID = buscar.getText().toString();
// Starting new intent
Intent in = new Intent(Administrador.this,
EditarTorneos.class);
// sending pid to next activity
in.putExtra(TAG_PID, TID);

89

// starting new activity and expecting some response back


startActivity(in);
}else if(busquedapor.equals("Nombre")){
// getting values from selected ListItem
buscar = (EditText) findViewById(R.id.txtbuscar);
String buscarpornombre;
buscarpornombre = buscar.getText().toString();
// Starting new intent
Intent i = new Intent(Administrador.this,
Buscartorneo.class);
i.putExtra(TAG_BUSCAR, buscarpornombre);
// sending pid to next activity
//i.putExtra(TAG_BUSCAR, buscar);
// starting new activity and expecting some response back
startActivity(i);
}
}
});

}
//se crean los menus
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.administrador, menu);
return true;
}
//item de los menus en la activity administrador
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.crearfutbol:

90

Intent i = new Intent(this, Creartorneo.class);


startActivity(i);
return true;
case R.id.crearbasket:
Intent in = new Intent(this, CreartorneoBasketball.class);
startActivity(in);
return true;

case R.id.crearbaseball:
Intent inte = new Intent(this, CreartorneoBaseball.class);
startActivity(inte);
return true;
case R.id.creartenis:
Intent intent = new Intent(this, CreartorneoTennis.class);
startActivity(intent);
return true;

}
return false;
}

}
activity_administrador.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/fondoadmin"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

91

android:layout_alignTop="@+id/imageView1"
android:layout_toRightOf="@+id/imageView1"
android:src="@drawable/schedule"
android:contentDescription="@string/bolatenis"/>
<EditText
android:id="@+id/txtbuscar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="36dp"
android:ems="10"
android:hint="@string/buscar" />
<Spinner
android:id="@+id/spinnerbusqueda"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/txtbuscar"
android:layout_below="@+id/txtbuscar"
android:layout_marginTop="18dp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="75dp"
android:layout_marginLeft="24dp"
android:contentDescription="@string/bolatenis"
android:src="@drawable/home" />
<Button
android:id="@+id/btnbuscar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/spinnerbusqueda"
android:layout_centerHorizontal="true"
android:layout_marginTop="21dp"
android:drawableLeft="@drawable/bus"
android:text="@string/buscar" />
</RelativeLayout>

92

Cdigo de la actividad que busca torneos segn su id:

codigo Buscartorneo.java
package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class Buscartorneo extends ListActivity {
String buscar;
private static final String TAG_BUSCAR = "buscar";
private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> torneosList;
//url donde se encuentra el archivo buscar_pdo.php importante para esta clase
private static String url_torneos =
"http://www.torneoapp.esy.es/buscartorneo/buscar_pdo.php";

93

// JSON parametros de nodos en el POST


private static final String TAG_SUCCESS = "success";
private static final String TAG_TORNEOS = "torneos";
private static final String TAG_ID = "id";
private static final String TAG_NOMBRE = "nombretorneo";
private static final String TAG_CODIGO = "codigo";
private static final String TAG_LUGAR = "lugar";
private static final String TAG_CIUDAD = "ciudad";
private static final String TAG_MODALIDAD = "modalidad";
private static final String TAG_FECHAINICIO = "fecha_i";
private static final String TAG_FECHAFIN = "fecha_f";
private static final String TAG_DEPORTE = "deporte";
// torneos JSONArray
JSONArray torneos = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_todoslostorneos);
Intent i = getIntent();

buscar = i.getStringExtra(TAG_BUSCAR);
torneosList = new ArrayList<HashMap<String, String>>();
new CargandoTorneos().execute();
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// se obtiene el valor del id en la lista
String pid = ((TextView) view.findViewById(R.id.tid)).getText()
.toString();
// se selecciona la posicion y entra a la activity Editartorneos
Intent in = new Intent(getApplicationContext(),
EditarTorneos.class);

94

// se envia a la siguiente activity


in.putExtra(TAG_ID, pid);
// comienza la activity
startActivityForResult(in, 100);
}
});
}

// Response from Edit Empleado Activity


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// si result code 100
if (resultCode == 100) {
// si el result code 100 es recivido
// para actualizar o eliminar torneos
// se recarga de nuevo la activity
Intent intent = getIntent();
finish();
startActivity(intent);
}
}

class CargandoTorneos extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Buscartorneo.this);
pDialog.setMessage("Cargando lista de torneos...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();

95

protected String doInBackground(String... args) {


// trabajando con los parametros
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("buscar", buscar));
// se obtiene el String JSON mediante la url
JSONObject json = jParser.makeHttpRequest(url_torneos, "GET", params);
// se cargan todos los torneos
Log.d("todos los torneos: ", json.toString());
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
//si succes es 1 se encuentran los torneos
torneos = json.getJSONArray(TAG_TORNEOS);
// por lo tanto se hace un ciclo para la busqueda
for (int i = 0; i < torneos.length(); i++) {
JSONObject c = torneos.getJSONObject(i);
String nombre = c.getString(TAG_NOMBRE);
String codigo = c.getString(TAG_CODIGO);
String lugar = c.getString(TAG_LUGAR);
String ciudad = c.getString(TAG_CIUDAD);
String modalidad = c.getString(TAG_MODALIDAD);
String fechai = c.getString(TAG_FECHAINICIO);
String fechaf = c.getString(TAG_FECHAFIN);
String depor = c.getString(TAG_DEPORTE);

// creando el nuevo HasMap o mapeo para


encontrar los datos
HashMap<String, String> map = new
HashMap<String, String>();

96

// se mapean los datos


map.put(TAG_CODIGO, codigo);
map.put(TAG_NOMBRE, nombre);
map.put(TAG_LUGAR, lugar);
map.put(TAG_CIUDAD, ciudad);
map.put(TAG_MODALIDAD, modalidad);
map.put(TAG_FECHAINICIO, fechai);
map.put(TAG_FECHAFIN, fechaf);
map.put(TAG_DEPORTE, depor);

// y luego se agregan en el array


torneosList.add(map);
}
} else {
//sino se encontraron empleados se va a la activity de
crear torneos
Intent i = new Intent(getApplicationContext(),
Creartorneo.class);
// Closing all previous activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {


pDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
ListAdapter adapter = new SimpleAdapter(

97

Buscartorneo.this, torneosList,
R.layout.control, new String[] { TAG_ID,
TAG_NOMBRE },
new int[] { R.id.tid, R.id.nombre });
// updating listview
setListAdapter(adapter);
}
});
}
}
}

Cdigo de la actividad que permite modificar la informacin de los torneos segn su id:
package com.example.eventosdeportivos;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
public class EditarTorneos extends Activity {

98

private ProgressDialog pDialog;


JSONParser jsonParser = new JSONParser();
private EditText cod;
private EditText nombretorneo;
private EditText lugartorneo;
private EditText ciudad;
private EditText modalidadtorneo;
private EditText fechainiciotorneo;
private EditText fechafintorneo;
private EditText deporte;
private TabHost tabs;
Button btnactualiza;
Button btneliminar;
String TID;
// datos de los torneos
private static final String url_datostorneo =
"http://torneoapp.esy.es/reportetorneo/reporte_pdo.php";
// url para actualizar los torneos
private static final String url_actualizartorneo =
"http://www.torneoapp.esy.es/actualizartorneo/actualizar_pdo.php";
// url para eliminar los torneos
private static final String url_eliminartorneo =
"http://www.torneoapp.esy.es/borrartorneo/borrar_pdo.php";
// JSON nodos o los post que se encuentran en el archivo php
private static final String TAG_SUCCESS = "success";
private static final String TAG_TORNEOS = "torneos";
private static final String TAG_PID = "id";
private static final String TAG_NOMBRE = "nombretorneo";
private static final String TAG_LUGAR = "lugar";
private static final String TAG_CIUDAD = "ciudad";
private static final String TAG_MODALIDAD = "modalidad";
private static final String TAG_FECHAINI = "fecha_i";
private static final String TAG_FECHAFIN = "fecha_f";
private static final String TAG_DEPORTE = "deporte";

99

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editar_torneos);
//se llama el tabhost de edicion de torneos
tabs= (TabHost) findViewById(R.id.panelTorneo);
tabs.setup();
TabHost.TabSpec spec = tabs.newTabSpec("Tab1");
spec.setContent(R.id.tab1);
spec.setIndicator("Datos de Registro del torneo");
tabs.addTab(spec);
spec = tabs.newTabSpec("Tab2");
spec.setContent(R.id.tab2);
spec.setIndicator("Actualizar torneo");
tabs.addTab(spec);
tabs.setCurrentTab(0);
// botones para actualizar y eliminar torneo
btnactualiza = (Button) findViewById(R.id.btnactualiza);
btneliminar = (Button) findViewById(R.id.btnelimina);
// obteniendo los detalles de torneos
Intent i = getIntent();
// obteniendo los torneos por id
TID = i.getStringExtra(TAG_PID);
// se obtiene por completo todos los datos del torneo
new ObtenerTorneos().execute();
// boton actualizar
btnactualiza.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// comienza la accion de actualizar los torneos

100

new Actualizar().execute();
}
});
// boton del evento eliminar
btneliminar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// se eliminan los productos
new Eliminar().execute();
}
});
}
/**
* Background Async Task para el completado del detalle de torneos
* */
class ObtenerTorneos extends AsyncTask<String, String, String> {
/**
* antes empieza el hilo de codigo para arrancar el progress dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(EditarTorneos.this);
pDialog.setMessage("Cargando detalles de torneos. Porfavor espera...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* obteniendo los detalles de productos
* */
protected String doInBackground(String... params) {
// corriendo la secuencia
runOnUiThread(new Runnable() {

101

public void run() {


// se chequean las etiquetas donde se encuentran los
nodos JSON
int success;
try {
// buscando los parametros
List<NameValuePair> params = new
ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id", TID));
//se obtienen los detalles del torneo por medio de
la respuesta http por el metodo GET
JSONObject json = jsonParser.makeHttpRequest(
url_datostorneo, "GET", params);
// respuesta de log para JSON
Log.d("Single Product Details", json.toString());
// Etiqueta es exitosa
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// si succes es 1 se realiza la llamada de el
array de JSON torneos
JSONArray productObj = json
.getJSONArray(TAG_TORNEOS); // JSON Array
// primero se obtiene el array de json
JSONObject torneos =
productObj.getJSONObject(0);
// torneos segun su id encontrados
// se llaman los EDITTEXT de los campos
de la app
cod = (EditText)
findViewById(R.id.inputcodigo);
nombretorneo = (EditText)
findViewById(R.id.inputnombre);
lugartorneo = (EditText)
findViewById(R.id.imputlugar);

102

ciudad = (EditText)
findViewById(R.id.inputciudad);
modalidadtorneo = (EditText)
findViewById(R.id.inputmodalidad);
fechainiciotorneo= (EditText)
findViewById(R.id.inputfechai);
fechafintorneo = (EditText)
findViewById(R.id.inputfechaf);
deporte= (EditText)
findViewById(R.id.inputdeporte);

// se muestran los POST de nuestro


archivo php a nuestra app
cod.setText(torneos.getString(TAG_PID));
nombretorneo.setText(torneos.getString(TAG_NOMBRE));
lugartorneo.setText(torneos.getString(TAG_LUGAR));
ciudad.setText(torneos.getString(TAG_CIUDAD));
modalidadtorneo.setText(torneos.getString(TAG_MODALIDAD));
fechainiciotorneo.setText(torneos.getString(TAG_FECHAINI));
fechafintorneo.setText(torneos.getString(TAG_FECHAFIN));
deporte.setText(torneos.getString(TAG_DEPORTE));

}else{
// sino los torneos no fueron encontrados
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});

103

return null;
}

protected void onPostExecute(String file_url) {


pDialog.dismiss();
}
}

class Actualizar extends AsyncTask<String, String, String> {


//clase AsyncTask para actualizar los torneos
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(EditarTorneos.this);
pDialog.setMessage("Actualizando torneo ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}

protected String doInBackground(String... args) {


// se obtiene lo que se edito en los EditText de nuestra app
String nombre = nombretorneo.getText().toString();
String lugar = lugartorneo.getText().toString();
String ciu = ciudad.getText().toString();
String modalidad = modalidadtorneo.getText().toString();
String fechai = fechainiciotorneo.getText().toString();
String fechaf = fechafintorneo.getText().toString();
String depor = deporte.getText().toString();

104

// recontruyendo los parametros de los POST


List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(TAG_PID, TID));
params.add(new BasicNameValuePair(TAG_NOMBRE, nombre));
params.add(new BasicNameValuePair(TAG_LUGAR, lugar));
params.add(new BasicNameValuePair(TAG_CIUDAD, ciu));
params.add(new BasicNameValuePair(TAG_MODALIDAD, modalidad));
params.add(new BasicNameValuePair(TAG_FECHAINI, fechai));
params.add(new BasicNameValuePair(TAG_FECHAFIN, fechaf));
params.add(new BasicNameValuePair(TAG_DEPORTE, depor));
//enviando la respuesta por http
JSONObject json = jsonParser.makeHttpRequest(url_actualizartorneo,
"POST", params);

try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// si es exitoso se actualizan los datos
Intent i = getIntent();
setResult(100, i);
finish();
} else {
// sino falla la actualizacion
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {


pDialog.dismiss();

105

}
}

class Eliminar extends AsyncTask<String, String, String> {


//clase AsyncTask para eliminar torneos
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(EditarTorneos.this);
pDialog.setMessage("Eliminando Torneo...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}

protected String doInBackground(String... args) {

int success;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("pid", TID));
// obteniendo respuesta http
JSONObject json = jsonParser.makeHttpRequest(
url_eliminartorneo, "POST", params);
// respuesta de parte de json
Log.d("Delete Product", json.toString());
// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
//si es 1 el torneo fue eliminado
Intent i = getIntent();
setResult(100, i);

106

finish();
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {


pDialog.dismiss();
}
}
}
activity_editar_torneo.xml
<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: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=".EditarTorneos" >
<TabHost
android:id="@+id/panelTorneo"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

107

<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:text="@string/codigo"/>

<EditText
android:id="@+id/inputcodigo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:inputType="text"
android:singleLine="true" />

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingRight="10dip"

108

android:paddingTop="10dip"
android:text="@string/nomtorneo"
/>

<EditText
android:id="@+id/inputnombre"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:inputType="numberDecimal"
android:singleLine="true" />

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:text="@string/lugar"
/>

<EditText
android:id="@+id/imputlugar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:singleLine="true">
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ciudad" />
<EditText

109

android:id="@+id/inputciudad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:singleLine="true"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/modalidad" />
<EditText
android:id="@+id/inputmodalidad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/inputfechai"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:singleLine="true"/>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fechafin" />

110

<EditText
android:id="@+id/inputfechaf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:singleLine="true"/>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/depor" />
<EditText
android:id="@+id/inputdeporte"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:singleLine="true"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnactualiza"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/actualizar" />
<Button
android:id="@+id/btnelimina"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/eliminar" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>

111

Cdigo de la actividad de contacto:


contacto.java
package com.example.eventosdeportivos;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Contacto extends Activity implements View.OnClickListener{
EditText etAsunto;
EditText etMensaje;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contacto);
etAsunto = (EditText) findViewById(R.id.et_EmailAsunto);
etMensaje = (EditText) findViewById(R.id.et_EmailMensaje);
final Button btnSendMail = (Button) findViewById(R.id.btnEnviarMail);
btnSendMail.setOnClickListener(this);
}
public void onClick(View v){
//final EditText etDe = (EditText) getView().findViewById(R.id.et_EmailDe);
//String to = etDe.getText().toString();
if(validar()){
String subject = etAsunto.getText().toString();
String message = etMensaje.getText().toString();
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL , new String[]{"edgarpaezcarrillo@hotmail.com"});
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
// need this to prompts email client only

112

email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Seleciona un cliente de correo"));
}else{
Toast toast1 = Toast.makeText(getApplicationContext(),"Debe ingresar el asunto y
el mensaje para poder enviar", Toast.LENGTH_SHORT);
toast1.show();
}

public boolean validar(){


if (etAsunto.getText().toString().trim().equals("")){
return false;
}else if(etMensaje.getText().toString().trim().equals("")){
return false;
}else{
return true;
}
}
}
activity_contacto.xml
<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/fondoadmin"
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=".Contacto" >
<ScrollView
android:layout_width="match_parent"

113

android:layout_height="match_parent"
android:id="@+id/scrollView" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableLeft="@drawable/asunto"
android:text="@string/asunto"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/et_EmailAsunto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/asunto">
</EditText>
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/mensaje"
android:text="@string/mensaje"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/et_EmailMensaje"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/mensaje"
android:inputType="textMultiLine"
android:lines="5" />
<Button
android:id="@+id/btnEnviarMail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"

114

android:drawableLeft="@drawable/enviar"
android:text="@string/enviar" />
</LinearLayout>
</ScrollView>
</LinearLayout>

115

CONCLUSIONES Y TRABAJO FUTURO

Se logr crear eventos deportivos, tales como torneos de diversos deportes,


mediante un aplicacin mviles para dispositivos con sistema operativo android.

Se disearon interfaces interactivas en la aplicacin mvil que muestran la


informacin guarda correspondiente a los torneos y los equipos que lo conforman.

Se comprob que est aplicacin mvil puede gestionar cualquier evento deportivo
sea de cualquier deporte.

Dado la practicidad que mostr la aplicacin mvil en un futuro ser extendida en


trminos de funcionalidad, estos es: una gran infraestructura de servicio web,
nuevas interfaces que muestren los datos de cada jugador de un equipo, la
inclusin de un sitio web donde los jugadores e interesados en el torneo pueden
ver la informacin detallada de los torneos creados por el organizador o gestor
deportivo.

116

BIBLIOGRAFA

Benbourahla. Nazim. Android 4. Principios de las aplicaciones Java. Mxico. 2014

Вам также может понравиться