Documentación de un aplicación móvil en Android

download Documentación de un aplicación móvil en Android

of 117

Transcript of Documentación de un aplicación móvil en Android

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    1/117

    APLICACIN MVIL PARA EVENTOS DEPORTIVOS

    DANILSO DIAZ OSPINO

    EDGAR PAEZ CARRILLO

    UNIVERSIDAD DE LA COSTAFACULTAD DE INGENIERA DE SISTEMA

    COMPUTACIN MVILBARRANQUILLA

    2015

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    2/117

    2

    EVENTOS DEPORTIVOS APP

    DANILSO DIAZ OSPINO

    EDGAR PAEZ CARRILLO

    PROYECTO DE AULA

    ROBERTO MORALES

    UNIVERSIDAD DE LA COSTAFACULTAD DE INGENIERA DE SISTEMAS

    COMPUTACIN MVILBARRANQUILLA

    2015

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    3/117

    3

    Nota de Aceptacin

    Presidente del Jurado

    Jurado

    Jurado

    Barranquilla 28/0572015

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    4/117

    4

    CONTENIDO

    Pg.

    Contenido

    INTRODUCCIN ............................................................................................................... 8

    OBJETIVOS ...................................................................................................................... 9

    OBJETIVO GENERAL ................................................................................................... 9

    OBJETIVOS ESPECFICOS .......................................................................................... 9

    PLANTEAMIENTO DEL PROBLEMA .............................................................................. 10DEFINICIN 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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    5/117

    5

    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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    6/117

    6

    GLOSARIO

    SISTEMA OPERATIVO ANDROID: Android es un sistema operativo basado en elncleo Linux. Fue diseado principalmente para dispositivos mviles con pantallatctil, como telfonos inteligentes o tablets; y tambin para relojes inteligentes,televisores y automviles.

    APLICACIN MVIL: una aplicacin mvil, apli o app (en ingls) es unaaplicacin informtica diseada para ser ejecutada en telfonos inteligentes,tabletas y otros dispositivos mviles.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    7/117

    7

    RESUMEN

    En este proyecto de aula concerniente a la materia de computacin mvil, sepropone la creacin de una aplicacin mvil que brinde a los organizadores ogestores deportivos la facultad tecnolgica de llevar la administracin de loseventos deportivos que desee crear. Est aplicacin permite al organizadordeportivo crear un evento tal como un torneo, apartir del cual puede crear losequipos que lo conforman. Una vez hecho esto, el organizador pudo ver, revisar ymodificar 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 demanera gil, eficiente y definitivamente ms cmoda, si la comparamos con laanterior manera de registrar la informacin de los eventos, la cual era medianteplanillas de papel.

    PALABRAS CLAVE: aplicacin mvil, telfonos inteligentes, sistema operativoandroid.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    8/117

    8

    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 utilizacinde dichas aplicaciones mviles en diversos campos, no solo en el empresarial sinotambin en el educativo, cultural, deportivo y en las actividades diarias de laspersonas.

    Por ejemplo, en el campo empresarial las aplicaciones mviles cumplen tareastales 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 escritoriohoy la pueden tener las aplicaciones mviles, permitiendo hacer medianteaplicacin mvil todo lo que se puede con un software de computador, pero con laventaja que esto se hace desde un telfono mvil de una manera gil, cmoda yeficiente.

    Las aplicaciones para telfonos mviles estn cambiando la manera no solo dehacer tecnologa sino tambin la forma de hacer empresa, esto es, la crecientedemanda de desarrollo de aplicaciones mviles por parte de las empresas enbusca de solucionar problemas de un modo definitivamente ms innovador. En laeducacin el uso de tabletas electrnicas ha solicitado la necesidad de crearaplicaciones mviles que sirvan de espacio de conocimiento cientfico al

    alumnado, como son las aulas virtuales, a las que los estudiantes accedenmediante una tableta o celular. Tambin en el mbito cultural se han instalado lasaplicaciones mviles haciendo que la cultura vaya acompaada de la tecnologasiendo difundida en la web. Asimismo en las dems actividades diarias de laspersonas (recreacin, deporte, transporte) las aplicaciones mviles sonprometedoras. Su importancia ha llegado al punto de que en poco tiempo sernpocos los contextos en los que no se utilice las aplicaciones mviles como elmedio que comunica a las personas con el mundo tecnolgico, empresarial,cultural y social.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    9/117

    9

    OBJETIVOS

    OBJETIVO GENERAL

    Permitir a los organizadores de eventos deportivos llevar la administracin deestos.

    OBJETIVOS ESPECFICOS

    Desarrollar una aplicacin mvil para el sistema operativo android que permita alusuario crear eventos deportivos tales como torneos segn diversas categorasdeportivas.

    Disear interfaces de la aplicacin mvil que le permita al usuario, de manerainteractiva, ver la informacin de los eventos deportivos que cree.

    Aplicar tanto desarrollo como el diseo planteado para lograr una funcionalidadeficiente de la aplicacin mvil en el caso concerniente: la gestin de eventos

    deportivos.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    10/117

    10

    PLANTEAMIENTO DEL PROBLEMA

    DEFINICIN DEL PROBLEMA

    En el mbito deportivo son muchas las personas que se dedican a la gestin deeventos deportivos. Llevar la informacin de un torneo y de los equipos que loconforman, revisar esta informacin y modificarla, son actividades que losorganizadores de eventos deportivos hacen de manera manual, esto es,registrando todo en plantillas de papel. Este modo de registrar la informacin delos eventos resulta tedioso para los organizadores deportivos, mxime cuando sonmuchos los torneos que pueden conformar un evento deportivo. Modificarsusodicha informacin aun es ms engorroso cuando se hace en plantillas otableros 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 detareas de formas poco eficientes y modernas en trminos de practicidad.

    JUSTIFICACIN

    Con el aumento de eventos deportivos que se realizan en la ciudad, nace lanecesidad de hacer de la administracin de dichos eventos una actividad msrpida, cmoda y moderna. Dadas estas necesidades de nuestra actualidad, qu

    mejor que una aplicacin mvil la que, precisamente, brinda rapidez, comodidad ymodernidad, haciendo actividades diarias, como es este caso de la gestin deeventos deportivos, de manera definitivamente prctica, eficiente y al alcance decualquier persona interesada en ello.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    11/117

    11

    MARCO TERICO

    DISEO DE LA BASE DE DATOS

    Figura 1.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    12/117

    12

    DESCRIPCIN DE LA APLICACIN MVIL

    En primera instancia la aplicacin mvil permite al usuario registrarse, de talmanera que de inmediato sus datos se guardan en la nube. Una vez registrado elusuario accede a la aplicacin mediante su nombre de usuario y contrasea queaparecen en la interfaz de ingreso. Acto seguido el usuario se encuentra con unalista de deportes de diversas categoras, a los cuales se puede acceder haciendoclick en el icono correspondiente a cada deporte; esto lo dirigir a un formularioque contiene los datos necesarios para el torneo que desee crear. Una vez creadoel torneo el usuario ya podr administrarlo, pudiendo ver la lista de torneos que hacreado y editar su informacin cuando as lo quiera. A partir de esos torneos elusuario 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 permiteuna gil y eficiente manera de gestionar cada uno de los torneos del deporte quefuere usando su celular y salvando su informacin en la web, solucionando latediosa necesidad de registrar todo en planillas de papel.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    13/117

    13

    DESARROLLO DEL PROYECTO.

    INTERFACES DE LA APLICACIN MVIL

    Transicin de apertura.

    Figura 2.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    14/117

    14

    Interfaz de ingreso

    Figura 3.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    15/117

    15

    Interfaz de registro de datos:

    Figura 4.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    16/117

    16

    Interfaz de categoras de deportes

    Figura 5.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    17/117

    17

    Interfaz del deporte futbol

    Figura 6.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    18/117

    18

    Interfaz del deporte basquetbol

    Figura 7.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    19/117

    19

    Interfaz del deporte beisbol

    Figura 8.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    20/117

    20

    Interfaz del deporte tenis

    Figura 9.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    21/117

    21

    Interfaz de administrador para buscar por id

    Figura 10.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    22/117

    22

    Figura 11.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    23/117

    23

    Interfaz donde se crean los equipos

    Figura 12.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    24/117

    24

    Interfaz donde aparece la lista de torneos

    Figura 13.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    25/117

    25

    Interfaz donde lista los equipos

    Figura 14.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    26/117

    26

    Interfaz que aparece cuando el usuario ha cerrado sesin

    Figura 15.

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    27/117

    27

    CDIGO DE LA APLICACIN MVIL

    Cdigo de la actividad ingreso:

    ingreso.javapackage 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();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    28/117

    28

    // 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;

    http://xxx.xxx.x.x:1234/cas/login.phphttp://torneoapp.esy.es/app/login.phphttp://torneoapp.esy.es/app/login.phphttp://xxx.xxx.x.x:1234/cas/login.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    29/117

    29

    case R.id.regis:

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

    startActivity(i);

    break;

    default:

    break;

    }

    }

    class AttemptLogin extends AsyncTask {

    @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());

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    30/117

    30

    // 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;

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    31/117

    31

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

    http://xxx.xxx.x.x:1234/cas/login.phphttp://torneoapp.esy.es/app/login.phphttp://torneoapp.esy.es/app/login.phphttp://xxx.xxx.x.x:1234/cas/login.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    32/117

    32

    @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) {

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    33/117

    33

    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 {

    @Override

    protected void onPreExecute() {

    super.onPreExecute();

    pDialog = new ProgressDialog(Ingreso.this);

    pDialog.setMessage("Ingresando Porfavor espere...");

    pDialog.setIndeterminate(false);

    pDialog.setCancelable(true);

    pDialog.show();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    34/117

    34

    }

    @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) {

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    35/117

    35

    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();

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    36/117

    36

    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;

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    37/117

    37

    @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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    38/117

    38

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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    39/117

    39

    android:id="@+id/txtUsuario"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:ems="10"

    android:textColor="#FFFFFF"

    android:inputType="text">

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    40/117

    40

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

    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();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    41/117

    41

    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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    42/117

    42

    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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    43/117

    43

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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    44/117

    44

    android:layout_gravity="center"

    android:drawableLeft="@drawable/key"

    android:gravity="center"

    android:text="@string/login"

    android:textColor="#FFFFFF"/>

    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(){

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    45/117

    45

    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

    Cdigo de la actividad de registro:

    registro.java

    package com.example.eventosdeportivos;

    import java.util.ArrayList;

    import java.util.List;

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    46/117

    46

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

    http://xxx.xxx.x.x:1234/cas/register.phphttp://torneoapp.esy.es/app/register.phphttp://torneoapp.esy.es/app/register.phphttp://xxx.xxx.x.x:1234/cas/register.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    47/117

    47

    //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) {

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    48/117

    48

    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;

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    49/117

    49

    }else if(correo.getText().toString().trim().equals("")){

    return false;

    }else if(!masculino.isChecked()&& !femenino.isChecked() ){

    return false;

    }else{return true;

    }

    }

    class CrearUsuario extends AsyncTask {

    @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()){

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    50/117

    50

    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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    51/117

    51

    }

    } 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();

    }

    }

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    52/117

    52

    public void err_crear(){

    Vibrator vibrator =(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

    vibrator.vibrate(200);

    Toast toast1 = Toast.makeText(getApplicationContext(),"Datos incompletosdigite todos los campos", Toast.LENGTH_SHORT);

    toast1.show();

    }

    }

    activity_registro.xml

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    53/117

    53

    android:id="@+id/nombretorneo"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/password"

    android:textColor="#FFFFFF"/>

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    54/117

    54

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    55/117

    55

    android:layout_height="wrap_content">

    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;

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    56/117

    56

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

    http://torneoapp.esy.es/crudtorneo/crear_torneo.phphttp://torneoapp.esy.es/crudtorneo/crear_torneo.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    57/117

    57

    @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{

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    58/117

    58

    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 {

    @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();

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    59/117

    59

    /**

    * 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 params = new ArrayList();

    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,

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    60/117

    60

    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();

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    61/117

    61

    }

    activity_crear_torneo.xml

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    62/117

    62

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/codigo"/>

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    63/117

    63

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    64/117

    64

    Cdigo de la actividad que lista los torneos:todoslostorneos.java

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    65/117

    65

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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    66/117

    66

    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();

    // 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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    67/117

    67

    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 {

    /**

    * 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();

    }

    /**

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    68/117

    68

    * getting All products from url

    * */

    protected String doInBackground(String... args) {

    // Building Parameters

    List params = new ArrayList();// 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 map = new

    HashMap();

    // 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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    69/117

    69

    }

    } 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);

    }

    });

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    70/117

    70

    }

    }

    }

    activity_todos_los_torneos.xml

    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;

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    71/117

    71

    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);

    http://torneoapp.esy.es/crudtorneo/crear_torneo.phphttp://torneoapp.esy.es/crudtorneo/crear_torneo.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    72/117

    72

    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();

    }

    }

    });

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    73/117

    73

    }

    //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 {

    @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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    74/117

    74

    * */

    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 params = new ArrayList();

    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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    75/117

    75

    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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    76/117

    76

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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    77/117

    77

    android:id="@+id/txtcodigotorneobaseball"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:ems="10"

    android:inputType="text">

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    78/117

    78

    android:text="@string/ciudad"/>

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    79/117

    79

    android:inputType="text"/>

    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;

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    80/117

    80

    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);

    http://torneoapp.esy.es/crearequipos/crear_equipo.phphttp://torneoapp.esy.es/crearequipos/crear_equipo.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    81/117

    81

    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("");

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    82/117

    82

    }

    });

    }

    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 {

    @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();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    83/117

    83

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

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

    try {// trabajando parametros del post

    List params = new ArrayList();

    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

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    84/117

    84

    } 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);

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    85/117

    85

    }

    activity_equipos_futbol.xml

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    86/117

    86

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    87/117

    87

    Cdigo de la actividad que la administracin general de torneos:

    codigo Administrador.javapackage 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 {

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    88/117

    88

    //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 adaptador =

    new ArrayAdapter(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";

    }

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    89/117

    89

    });

    listado.setOnClickListener(new View.OnClickListener() {

    @Overridepublic 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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    90/117

    90

    // starting new activity and expecting some response back

    startActivity(in);

    }else if(busquedapor.equals("Nombre")){

    // getting values from selected ListItembuscar = (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:

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    91/117

    91

    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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    92/117

    92

    android:layout_alignTop="@+id/imageView1"

    android:layout_toRightOf= "@+id/imageView1"

    android:src="@drawable/schedule"

    android:contentDescription= "@string/bolatenis"/>

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    93/117

    93

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

    http://www.torneoapp.esy.es/buscartorneo/buscar_pdo.phphttp://www.torneoapp.esy.es/buscartorneo/buscar_pdo.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    94/117

    94

    // 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();

    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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    95/117

    95

    // 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 {

    @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();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    96/117

    96

    }

    protected String doInBackground(String... args) {

    // trabajando con los parametrosList params = new ArrayList();

    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 map = new

    HashMap();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    97/117

    97

    // 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(

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    98/117

    98

    Buscartorneo.this, torneosList,

    R.layout.control, new String[] { TAG_ID,

    TAG_NOMBRE },

    new int[] { R.id.tid, R.id.nombre });

    // updating listviewsetListAdapter(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 {

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    99/117

    99

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

    http://torneoapp.esy.es/reportetorneo/reporte_pdo.phphttp://www.torneoapp.esy.es/actualizartorneo/actualizar_pdo.phphttp://www.torneoapp.esy.es/borrartorneo/borrar_pdo.phphttp://www.torneoapp.esy.es/borrartorneo/borrar_pdo.phphttp://www.torneoapp.esy.es/actualizartorneo/actualizar_pdo.phphttp://torneoapp.esy.es/reportetorneo/reporte_pdo.php
  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    100/117

    100

    @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

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    101/117

    101

    new Actualizar().execute();

    }

    });

    // boton del evento eliminarbtneliminar.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 {

    /**

    * 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() {

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    102/117

    102

    public void run() {

    // se chequean las etiquetas donde se encuentran los

    nodos JSON

    int success;

    try {// buscando los parametros

    List params = new

    ArrayList();

    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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    103/117

    103

    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();

    }

    }

    });

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    104/117

    104

    return null;

    }

    protected void onPostExecute(String file_url) {

    pDialog.dismiss();

    }

    }

    class Actualizar extends AsyncTask {

    //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();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    105/117

    105

    // recontruyendo los parametros de los POST

    List params = new ArrayList();

    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();

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    106/117

    106

    }

    }

    class Eliminar extends AsyncTask {//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 params = new ArrayList();

    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);

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    107/117

    107

    finish();

    }

    } catch (JSONException e) {

    e.printStackTrace();

    }

    return null;

    }

    protected void onPostExecute(String file_url) {

    pDialog.dismiss();

    }

    }

    }

    activity_editar_torneo.xml

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    108/117

    108

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    109/117

    109

    android:paddingTop="10dip"

    android:text="@string/nomtorneo"

    />

  • 7/25/2019 Documentacin de un aplicacin mvil en Android

    110/117

    110

    android:id="@+id/inputciudad"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:ems="10"

    android:inp