Android y SqLite (gestión interna de datos en un dispositivo android)

viernes, 6 de mayo de 2011

Descripción
Programa capaz de escribir y leer en una base de datos interna de un dispositivo Android.
Este programa registra usuarios en una base de datos, comprueba a través de una pantalla de “Login” si el usuario está registrado o no, y en caso de que exista, muestra los datos del cliente.


Arquitectura


Leer más...


By Francisco Javier Arbues Sierra, 1º Grado Superior de Desarrollo de Aplicaciones Informáticas, Fundación San Valero, franpinsoro@live.com


Ejecución de pantallas

Pantalla de Inicio:
Pantalla de Registro:


Pantalla de Login:


Pantalla de Datos:



Glosario de Términos
Android
Android es un sistema operativo para dispositivos móviles multitarea desarrollado por Google y que está basado en el núcleo de Linux.
Este sistema es de código abierto y muchos fabricantes de teléfonos móviles ya están instalándolo en la mayoría de sus terminales.

Más información: 
http://www.configurarequipos.com/doc1107.html
SQLite
Se trata de un sistema de gestión de bases de datos de dominio publico, y es el que utiliza Android para guardar los datos.
Eclipse Java Helios
Entorno de desarrollo para implementar aplicaciones que se ejecutan en dispositivos Android.

Más información y
Android SDK
Android SDK es el kit de desarrollo necesario para programar e implementar todo tipo de aplicaciones para Android, el sistema operativo para teléfonos móviles propuesto por Google.
Este paquete o kit de desarrollo incluye las APIs y herramientas necesarias para desarrollar aplicaciones utilizando JAVA como lenguaje de programación.

Más información y


Requisitos de Software
  • Eclipse Java Helios
  • SDK Android


Interface (Diseño de las pantallas, *.xml)
Pantalla de inicio: main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="30dip"
    >
    <LinearLayout
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
        <TextView android:layout_width="wrap_content" android:id="@+id/textView2" android:layout_height="wrap_content" android:text="@string/tittle"></TextView>
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:text="@string/nada"/>
<Button android:layout_width="match_parent" android:id="@+id/registro" android:layout_height="wrap_content" android:text="@string/registro"></Button>
<TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="@string/nada"></TextView>
<Button android:layout_width="match_parent" android:id="@+id/login" android:layout_height="wrap_content" android:text="@string/iniciarsesion"></Button>
</LinearLayout>
</LinearLayout>
Pantalla de registro: registro.xml
<?xml version="1.0" encoding="utf-8"?>

    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
        <TextView android:layout_width="wrap_content" android:id="@+id/textView2" android:layout_height="wrap_content" android:text="@string/tittle2"></TextView>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="@string/nombre"></TextView>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:id="@+id/nombre"></EditText>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView4" android:layout_height="wrap_content" android:text="@string/userName"></TextView>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:id="@+id/userName"></EditText>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView5" android:layout_height="wrap_content" android:text="@string/pass"></TextView>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:id="@+id/password"></EditText>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView6" android:layout_height="wrap_content" android:text="@string/correo"></TextView>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:id="@+id/email"></EditText>
        <Button android:layout_width="match_parent" android:id="@+id/botonRegistro" android:layout_height="wrap_content" android:text="@string/registro"></Button>
            <TextView android:text="" android:id="@+id/fallo" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>     
       
  </LinearLayout>
Pantalla de login: login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="30dip"
    >
    <LinearLayout
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
        <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="@string/tittle3"></TextView>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView2" android:layout_height="wrap_content" android:text="@string/nada"></TextView>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView3" android:layout_height="wrap_content" android:text="@string/userName"></TextView>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:id="@+id/userNameLogin"></EditText>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView4" android:layout_height="wrap_content" android:text="@string/nada"></TextView>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView5" android:layout_height="wrap_content" android:text="@string/pass"></TextView>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:id="@+id/passLogin"></EditText>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView6" android:layout_height="wrap_content" android:text="@string/nada"></TextView>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/iniciarsesion" android:id="@+id/botonLogin"></Button>
      </LinearLayout>
</LinearLayout>
Pantalla que muestra los datos en pantalla: datos.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="30dip"
    >
    <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" android:baselineAligned="true" android:orientation="vertical">
        <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="Nombre: "></TextView>
        <TextView android:text="" android:id="@+id/namee" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="Nombre de usuario: "></TextView>
        <TextView android:text="" android:id="@+id/userNamee" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
        <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="Correo Electronico: "></TextView>
        <TextView android:text="" android:id="@+id/correoo" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
        <TextView android:layout_width="wrap_content" android:text="@string/nada" android:layout_height="wrap_content" android:id="@+id/textView2"></TextView>
        <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/logout" android:id="@+id/logout"></Button>
        <TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
        <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/salir2" android:text="@string/salir"></Button>
    </LinearLayout>  
</LinearLayout>
Strings.xml (Este fichero está en la carpeta values y contiene las cadenas de texto de los archivos anteriormente dichos)
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, dataBase!</string>
    <string name="app_name">PruebaSQLite</string>
    <string name="nada">   </string>
    <string name="registro">registrarse</string>
    <string name="iniciarsesion">Iniciar Sesión</string>
    <string name="tittle">Pruebas con SQLite interno de Android</string>
    <string name="tittle2">Registro en SQLite</string>
    <string name="nombre">Nombre</string>
    <string name="userName">Nombre de Usuario</string>
    <string name="pass">Contraseña</string>
    <string name="correo">Correo Electronico</string>
    <string name="tittle3">Inicio de sesión en SQLite</string>
    <string name="recordarme">Recordarme</string>
    <string name="logout">Cerrar sesión</string>
    <string name="salir">Salir</string>
</resources>
Activitys (*.java)
dataBase.java: Será la actividad que muestre la pantalla principal ‘main’
package prueba.sqlite;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class dataBase extends Activity {
    /** Called when the activity is first created. */
                //Declaramos botones
                private Button registro;
                private Button login;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Mostramos la pantalla:
        setContentView(R.layout.main);
        //Declaramos botones
       
        registro = (Button)findViewById(R.id.registro);
        login = (Button)findViewById(R.id.login);
   
        //Ponemos en escucha los botones para saber a cual se le ha pulsado
        registro.setOnClickListener(new OnClickListener() {
                                              
                                               @Override
                                               public void onClick(View v) {
                                                               // Cuando se le dé al botón de registro se lanzara una nueva actividad a traves de un intent
                                                               Intent registro = new Intent(getBaseContext(), registro.class);
                                                               startActivity(registro);
                                                              
                                               }
                               });
       
        login.setOnClickListener(new OnClickListener() {
                                               @Override
                                               public void onClick(View v) {
                                                               // lo mismo que en boton anterior pero con la clase login
                                                               Intent login = new Intent(getBaseContext(), login.class);
                                                               startActivity(login);
                                                              
                                               }
                               });
    }
}
Registro.java: Nos permitirá registrarnos en la aplicación
package prueba.sqlite;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class registro extends Activity{
               
                //Declaramos las variables de cajas editables de texto
                private EditText nombre;
                private EditText usuario;
                private EditText contrasena;
                private EditText correo;
                private TextView fallo;
                private Button botonRegistrarse;
               
                //Inicializamos variables con el nombre de la base de datos y de la tabla
               
                private final String BD_NOMBRE = "BaseDatosPrueba";
                private final String BD_TABLA  = "usuarios";
               
                 
                //Creamos una funcion para acceder a la base de datos interna de android
               
                private void baseDeDatos(String nombre, String usuario, String contraseña, String correo){
               
                               //Inicializamos la base
                               SQLiteDatabase myDB = null;
                               //creo la base de datos
                               myDB = this.openOrCreateDatabase(BD_NOMBRE, 1, null);
                               //ahora creo una tabla
                               myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                            + BD_TABLA + " (nombre VARCHAR, userName VARCHAR,"
                            + " contrasena VARCHAR, correo VARCHAR);");
                              
                               //Comprobamos que el usuario no exista en la base de datos
                                String[] campos = new String[] {"userName", "correo"};
                                String[] args = {usuario};
                                Cursor c = myDB.query(BD_TABLA, campos, "userName=?", args, null, null, null);
                                
                                //la funcion db.query funciona de esta manera:
                                //(table, columns, selection, selectionArgs, groupBy, having, orderBy);
                                
                      if(c==null || c.getCount()==0){
                                  //Toast.makeText(getBaseContext(), "No hay nada en el cursor", Toast.LENGTH_LONG).show();
                                  myDB.execSQL("INSERT INTO "
                                                           + BD_TABLA   + " (nombre, userName, contrasena, correo)"
                                                           + " VALUES ('"+nombre+"', '"+usuario+"', '"+contraseña+"', '"+correo+"');");
                                                                              Toast.makeText(getBaseContext(), "Usuario Insertado", Toast.LENGTH_LONG).show();
                      }else{
                      startManagingCursor(c);
                      String valorColumnaID = null;
                      StringBuilder builder = new StringBuilder("Saved events: \n");
                      while (c.moveToNext()){
                                     int columnaNombreIndice = c.getColumnIndexOrThrow("userName");
                                     valorColumnaID = c.getString(columnaNombreIndice);
                                     Toast.makeText(getBaseContext(), "El usuario ya exixte", Toast.LENGTH_SHORT).show();
                                     break;
                      }
                     
                      }
                                  
                     
                     
                }
                public void onCreate(Bundle savedInstanceState) {
                               super.onCreate(savedInstanceState);
                               setContentView(R.layout.registro);
                               //Toast.makeText(getBaseContext(), "primer paso!", Toast.LENGTH_LONG).show();
                               //Declaramos las cajas editables de texto
                               nombre = (EditText)findViewById(R.id.nombre);
                               usuario = (EditText)findViewById(R.id.userName);
                               contrasena = (EditText)findViewById(R.id.password);
                               correo = (EditText)findViewById(R.id.email);
                               fallo = (TextView)findViewById(R.id.fallo);
                               //Declaramos boton y le ponemos en escucha de click
                               botonRegistrarse = (Button)findViewById(R.id.botonRegistro);
                               botonRegistrarse.setOnClickListener(new OnClickListener() {
                                              
                                               @Override
                                               public void onClick(View v) {
                                                               // Llamo a la función
                                                               //pongo 'editText'.getText().toString() ya que el valor que nos da el usuario hay que pasarlo a una cadena de texto
                                                               baseDeDatos(nombre.getText().toString(), usuario.getText().toString(), contrasena.getText().toString(), correo.getText().toString());
                                                              
                                                               //Ahora nos llevara a la pagina principal:
                                                              
                                                               Intent principal = new Intent(getBaseContext(), dataBase.class);
                                                               startActivity(principal);
                                                              
                                               }
                               });
                              
                }

}
Login.java: Actividad que nos permitirá logearnos en la aplicación

package prueba.sqlite;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class login extends Activity{
                private EditText usuario;
                private EditText contrasena;
                private Button login;
                private final String BD_NOMBRE = "BaseDatosPrueba";
                private final String BD_TABLA  = "usuarios";
                private final String BD_TABLA2  = "user";
               
               
                private int comprobarBase(String usuario, String contrasena){

                               //Inicializamos la base
                               SQLiteDatabase myDB = null;
                               //creo la base de datos
                               myDB = this.openOrCreateDatabase(BD_NOMBRE, 1, null);
                               //ahora creo una tabla para que no de error el sistema
                               myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                            + BD_TABLA + " (nombre VARCHAR, userName VARCHAR,"
                            + " contrasena VARCHAR, correo VARCHAR);");
                               //Consulto la tabla
                               String[] campos = new String[] {"userName", "contrasena"};
                               String[] args = {usuario};
                               Cursor c = myDB.query(BD_TABLA, campos, "userName=?", args, null, null, null);
                               Toast.makeText(getBaseContext(), "Cursor: "+c, Toast.LENGTH_LONG).show();
                               if(c==null || c.getCount()==0){
                                  //Si no existe el usuario devolvemos directamente 0
                                  return 0;
                               }else{
                      startManagingCursor(c);
                      String valorColumnaID = null;
                      StringBuilder builder = new StringBuilder("Saved events: \n");
                     
                      while (c.moveToNext()){
                                     int columnaNombreIndice = c.getColumnIndexOrThrow("contrasena");
                                     //int columnaNombreIndice2 = c.getColumnIndexOrThrow("Id_usuario");
                                     valorColumnaID = c.getString(columnaNombreIndice);
                                    // idUser = c.getInt(columnaNombreIndice2);
                                     //comparamos el valor devuelto con la contraseña que ha insertado el usuario
                                     if(valorColumnaID.equals(contrasena)){
                                                 Toast.makeText(getBaseContext(), valorColumnaID, Toast.LENGTH_LONG).show();
                                                 return 1;
                                     }else{
                                                 return 0;
                                     }
                                    // Toast.makeText(getBaseContext(), "Usuario Correcto", Toast.LENGTH_LONG).show();
                                    
                      }
                              
                               }
                               return 0;
                }
               
                public void guardarEnDB(String NombreUsuario){

                                  /** Se llama a este método cuando accedemos a la Actividad por primera vez. */

                                     //ArrayList<String> salida = new ArrayList<String>();

                                     SQLiteDatabase myDB = null;

                                     /* Abrimos la base de datos.
                                      * Si no existía previamente se creará automáticamente. */
                                     myDB = this.openOrCreateDatabase(BD_NOMBRE, 1, null);
                                   
                                     /* Creamos la tabla de usuarios en la base de datos.
                                      * En caso de que existiera previamente no da error ('IF NOT EXISTS'). */
                                     myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                                           + BD_TABLA2 + " (userName VARCHAR);");
                                 
                                     /* Introducimos el nombre del usuario en la 2º tabla */
                                     myDB.execSQL("INSERT INTO "
                                           +  BD_TABLA2 + " (userName)"
                                           + " VALUES ('"+NombreUsuario+"');");
                                 
                                
                }
                public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.login);
                        usuario = (EditText)findViewById(R.id.userNameLogin);
                        contrasena = (EditText) findViewById(R.id.passLogin);
                        login = (Button)findViewById(R.id.botonLogin);
                        login.setOnClickListener(new OnClickListener() {
                                                              
                                                               @Override
                                                               public void onClick(View v) {
                                                                              int resultado = comprobarBase(usuario.getText().toString(),contrasena.getText().toString());
                                                                              if(resultado==0){
                                                                                              Toast.makeText(getBaseContext(), "Usuario Incorrecto", Toast.LENGTH_LONG).show();
                                                                              }else{
                                                                                              Toast.makeText(getBaseContext(), "Usuario correcto", Toast.LENGTH_LONG).show();
                                                                                             
                                                                                              //Guardamos un registro en la base de datos para poder consultar en otra actividad si ya se a registrado
                                                                                              guardarEnDB(usuario.getText().toString());
                                                                                              Intent datos = new Intent(getBaseContext(), datos.class);
                                                                                              startActivity(datos);
                                                                              }
                                                                             
                                                               }
                                               });
                       
                       
                 }

}
Datos.java: Nos mostrará los datos en pantalla
package prueba.sqlite;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class datos extends Activity{
                private TextView nombre;
                private TextView userName;
                private TextView correo;
                private final String BD_NOMBRE = "BaseDatosPrueba";
                private final String BD_TABLA  = "usuarios";
                private final String BD_TABLA2  = "user";
                private void cerrarSesion(){
                      SQLiteDatabase myDB = null;
                      /* Abrimos la base de datos.
                       * Si no existía previamente se creará automáticamente. */
                      myDB = this.openOrCreateDatabase(BD_NOMBRE, 1, null);

                      myDB.execSQL("DROP TABLE IF EXISTS "+ BD_TABLA2);
                     
                }
                 private int comprobarBase(){
                                  SQLiteDatabase myDB = null;
                              
                                     /* Abrimos la base de datos.
                                      * Si no existía previamente se creará automáticamente. */
                                     myDB = this.openOrCreateDatabase(BD_NOMBRE, 1, null);
                                     //Creo tabla de login si no existia, aunque es imposible que no este creada, evitaremos posibles fallos
                                     myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                                                           + BD_TABLA2 + " (userName VARCHAR);");
                                   //Creo tabla de usuarios si no existia, aunque es imposible que no este creada, evitaremos posibles fallos
                                     myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                                                           + BD_TABLA + " (nombre VARCHAR, userName VARCHAR,"
                                                           + " contrasena VARCHAR, correo VARCHAR);");
                                     //conuslto y meto en un cursor los registros de la tabla user
                                     Cursor c = myDB.query(BD_TABLA2, null, null, null, null, null, null);
                                     if(c==null || c.getCount()==0){
                                                 Toast.makeText(getBaseContext(), "No se ha registrado", Toast.LENGTH_SHORT).show();
                                     }else{
                                     //Con todo esto cojo el nombre de usuario con el que se registro
                                     startManagingCursor(c);
                                     StringBuilder builder = new StringBuilder("Saved events: \n");
                                
                                     String valorColumnaID = null;
                                     while (c.moveToNext()){   
                                                     int columnaNombreIndice = c.getColumnIndexOrThrow("userName");
                                                     valorColumnaID = c.getString(columnaNombreIndice);
                                              
                                                    
                                                                 break;
                                                    
                                     }
                                     //Ahora busco el nombre de usuario con el que se registro en la tabla de usuarios
                                     String[] campos = new String[] {"nombre", "correo"};
                                                 String[] args = {valorColumnaID};
                                     Cursor c2 = myDB.query(BD_TABLA, campos, "userName=?", args, null, null, null);
                                     if(c2==null || c.getCount()==0){
                                                 Toast.makeText(getBaseContext(), "No hay datos de el usuario", Toast.LENGTH_SHORT).show();
                                     }else{
                                     String valorColumnaID2 = null;
                                     String valorColumnaID3 = null;
                                                    startManagingCursor(c2);
                                                     StringBuilder builder2 = new StringBuilder("Saved events: \n");
                                                     while (c2.moveToNext()){
                                                                     int columnaNombreIndice2 = c2.getColumnIndexOrThrow("nombre");
                                                                     int columnaNombreIndice3 = c2.getColumnIndexOrThrow("correo");
                                                                     valorColumnaID2 = c2.getString(columnaNombreIndice2);
                                                                    
                                                                     valorColumnaID3 = c2.getString(columnaNombreIndice3);
                                                                    
                                                                     break;
                                                     }
                                                     //muestro los datos por pantalla
                                                     nombre.setText(valorColumnaID2);
                                                     userName.setText(valorColumnaID);
                                                     correo.setText(valorColumnaID3);
                                     }
                                     }
                                    
                                     return 1;
                   }
                public void onCreate(Bundle savedInstanceState) {
                               super.onCreate(savedInstanceState);
                               setContentView(R.layout.datos);
                               nombre = (TextView)findViewById(R.id.namee);
                               userName = (TextView)findViewById(R.id.userNamee);
                               correo = (TextView)findViewById(R.id.correoo);
                               comprobarBase();
                               Button logout = (Button)findViewById(R.id.logout);
                               Button salir = (Button)findViewById(R.id.salir2);
                               logout.setOnClickListener(new OnClickListener() {
                                              
                                               @Override
                                               public void onClick(View v) {
                                                               cerrarSesion();
                                                               Intent principal = new Intent(getBaseContext(), dataBase.class);
                                                               startActivity(principal);
                                                              
                                               }
                               });
                               salir.setOnClickListener(new OnClickListener() {
                                              
                                               @Override
                                               public void onClick(View v) {
                                                               cerrarSesion();
                                                               finish();
                                                              
                                               }
                               });          
                }
}
Fichero de configuración: AndroidManifest.xml
·          Archivo donde se declaran las actividades y los permisos de la aplicación.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="prueba.sqlite"
      android:versionCode="1"
      android:versionName="1.0">


    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".dataBase"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity android:name=".login"
                  android:label="@string/app_name">
                  </activity>
                  <activity android:name=".registro"
                  android:label="@string/app_name">
                  </activity>
                  <activity android:name=".datos"
                  android:label="@string/app_name">
                  </activity>

    </application>
</manifest>


By Francisco Javier Arbues Sierra, 1º Grado Superior de Desarrollo de Aplicaciones Informáticas, Fundación San Valero, franpinsoro@live.com

9 comentarios:

Diego,  6 de mayo de 2011, 3:45  

Eres un Crack Fran !!!

Gracias por ese código que estudiaremos en detalle y probaremos !!!

Aupa Pinsoro !!!

Cursos de Diego 6 de mayo de 2011, 3:47  

Ese código tiene muy buena pinta . . . lo miraremos y probaremos a fondo

Muchas gracias Fran !!!

Arriba Pinsoro !!!

Alberto Hernández Akkari 6 de mayo de 2011, 3:52  

Muy bien Fran, se agradece tu compromiso y tu ayuda.

1SI 6 de mayo de 2011, 3:52  

Muy buena publicación, esto sirve mucho para el inicio de conocimientos en mySqlite, felicidades Fran ;)

2ME - CUEVAS GARCES 6 de mayo de 2011, 3:53  

Muy buen artículo Fran
Como se nota que dominas !!!!

2ME - CUEVAS GARCES 6 de mayo de 2011, 3:53  

Muy buen artículo Fran
Como se nota que dominas !!!!

Jelan 6 de mayo de 2011, 4:00  

Ese Fran!!!!!!!!!!!!!!!!!!
Que crack ^^

David Felix 15 de junio de 2012, 13:41  

oye te falto el R.xml ponlo porfas

Publicar un comentario

fsvelectronicainformatica agradece tu comentario.

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP