Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: piete2 en 7 Octubre 2017, 18:55 pm



Título: Ayuda base de datos Android Studio
Publicado por: piete2 en 7 Octubre 2017, 18:55 pm
Hola, estoy intentando hacer una app super sencilla, pero estoy estancado en un sitio del que no tengo ni idea de cómo salir.

La app consta en registrar en una base de datos una serie de datos. ;-)

Os dejo mis clases por orden de creación:
MainActivity
Código
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3.    @Override
  4.    protected void onCreate(Bundle savedInstanceState) {
  5.        super.onCreate(savedInstanceState);
  6.        setContentView(R.layout.activity_main);
  7.  
  8.        //ConexionSQLiteHelper conn=new ConexionSQLiteHelper(this,"bdTiendas",null,1);
  9.  
  10.    }
  11.  
  12.    public void onClick(View view){
  13.        Intent nueva_ventana = new Intent(MainActivity.this, registrarTienda.class);
  14.        startActivity(nueva_ventana);
  15.    }
  16. }

Utilidades (declaro variables y creo BBDD):

Código
  1. public class Utilidades {
  2.  
  3.  
  4.    public static final String TABLA_TIENDA="tienda";
  5.    public static final String CampoNumeroTienda="numTienda";
  6.    public static final String CampoNombreTienda="nombre";
  7.    public static final String CampoMuelleFrio="muelleFrio";
  8.    public static final String CampoMuelleFruta="muelleFruta";
  9.    public static final String CampoMuelleSeco="muelleSeco";
  10.    public static final String CampoDireccion="direccion";
  11.    public static final String CampoTelefono="telefono";
  12.  
  13.    public static final String CREAR_TABLA_TIENDA="CREATE TABLE"+TABLA_TIENDA+"("+CampoNumeroTienda+" INTEGER, "+CampoNombreTienda+
  14.            " TEXT,"+CampoMuelleFrio+" INTEGER, "+CampoMuelleFruta+" INTEGER,"+CampoMuelleSeco+" INTEGER,"+
  15.            CampoDireccion+" TEXT,"+CampoTelefono+" TEXT)";
  16.  
  17.  
  18.  

Tienda (pongo los metodos set y get):
Código
  1. public class Tienda {
  2.    private Integer numTienda;
  3.    private String nombre;
  4.    private Integer muelleFrio;
  5.    private Integer muelleFruta;
  6.    private Integer muelleSeco;
  7.    private String direccion;
  8.    private String telefono;
  9.  
  10.    public Integer getNumTienda() {
  11.        return numTienda;
  12.    }
  13.  
  14.    public void setNumTienda(Integer numTienda) {
  15.        this.numTienda = numTienda;
  16.    }
  17.  
  18.    public String getNombre() {
  19.        return nombre;
  20.    }
  21.  
  22.    public void setNombre(String nombre) {
  23.        this.nombre = nombre;
  24.    }
  25.  
  26.    public Integer getMuelleFrio() {
  27.        return muelleFrio;
  28.    }
  29.  
  30.    public void setMuelleFrio(Integer muelleFrio) {
  31.        this.muelleFrio = muelleFrio;
  32.    }
  33.  
  34.    public Integer getMuelleFruta() {
  35.        return muelleFruta;
  36.    }
  37.  
  38.    public void setMuelleFruta(Integer muelleFruta) {
  39.        this.muelleFruta = muelleFruta;
  40.    }
  41.  
  42.    public Integer getMuelleSeco() {
  43.        return muelleSeco;
  44.    }
  45.  
  46.    public void setMuelleSeco(Integer muelleSeco) {
  47.        this.muelleSeco = muelleSeco;
  48.    }
  49.  
  50.    public String getDireccion() {
  51.        return direccion;
  52.    }
  53.  
  54.    public void setDireccion(String direccion) {
  55.        this.direccion = direccion;
  56.    }
  57.  
  58.    public String getTelefono() {
  59.        return telefono;
  60.    }
  61.  
  62.    public void setTelefono(String telefono) {
  63.        this.telefono = telefono;
  64.    }
  65.  
  66.    public Tienda(Integer numTienda, String nombre, Integer muelleFrio, Integer muelleFruta, Integer muelleSeco, String direccion, String telefono) {
  67.        this.numTienda = numTienda;
  68.        this.nombre = nombre;
  69.        this.muelleFrio = muelleFrio;
  70.        this.muelleFruta = muelleFruta;
  71.        this.muelleSeco = muelleSeco;
  72.        this.direccion = direccion;
  73.        this.telefono = telefono;
  74.    }
  75. }

ConexionSQLiteHelper

Código
  1. public class ConexionSQLiteHelper extends SQLiteOpenHelper {
  2.  
  3.    public ConexionSQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
  4.        super(context, name, factory, version);
  5.    }
  6.  
  7.    @Override
  8.    public void onCreate(SQLiteDatabase db) {
  9.  
  10.        db.execSQL(Utilidades.CREAR_TABLA_TIENDA);
  11.    }
  12.  
  13.    @Override
  14.    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  15.        db.execSQL("DROP TABLE IF EXISTS tabla");
  16.        onCreate(db);
  17.    }
  18. }

Registrar Tienda

Código
  1. public class registrarTienda extends AppCompatActivity {
  2. EditText nombre_tienda,numero_tienda,muelle_frio,muelle_fruta
  3.        ,muelle_seco,direccion,telf;
  4.    @Override
  5.    protected void onCreate(Bundle savedInstanceState) {
  6.        super.onCreate(savedInstanceState);
  7.        setContentView(R.layout.activity_registrar_tienda);
  8.  
  9.        nombre_tienda=(EditText) findViewById(R.id.nombreTienda);
  10.        numero_tienda=(EditText) findViewById(R.id.numeroTienda);
  11.        muelle_frio=(EditText) findViewById(R.id.muelleFrio);
  12.        muelle_fruta=(EditText) findViewById(R.id.muelleFruta);
  13.        muelle_seco=(EditText) findViewById(R.id.muelleseco);
  14.        direccion=(EditText) findViewById(R.id.direccionTienda);
  15.        telf=(EditText) findViewById(R.id.numTelfTienda);
  16.  
  17.  
  18.    }
  19.  
  20.    public void onClick(View view){
  21.        registroTienda();
  22.        }
  23.  
  24.  
  25.  
  26.    private void registroTienda() {
  27.        ConexionSQLiteHelper conn=new ConexionSQLiteHelper(this,"bdTiendas",null,1);
  28.        SQLiteDatabase db=conn.getWritableDatabase(); //PROBLEMA
  29.  
  30.        ContentValues values=new ContentValues();
  31.        values.put(Utilidades.CampoNumeroTienda,numero_tienda.getText().toString());
  32.        values.put(Utilidades.CampoNombreTienda ,nombre_tienda.getText().toString());
  33.        values.put(Utilidades.CampoMuelleFrio,muelle_frio.getText().toString());
  34.        values.put(Utilidades.CampoMuelleFruta,muelle_fruta.getText().toString());
  35.        values.put(Utilidades.CampoMuelleSeco,muelle_seco.getText().toString());
  36.        values.put(Utilidades.CampoDireccion,direccion.getText().toString());
  37.        values.put(Utilidades.CampoTelefono,telf.getText().toString());
  38.  
  39.       // Long idResultante=db.insert(Utilidades.TABLA_TIENDA,Utilidades.CampoNombreTienda,values);
  40.       // Toast.makeText(getApplicationContext(),"Tienda: "+idResultante+" agregada",Toast.LENGTH_SHORT).show();
  41.    }
  42. }
  43.  

Y el problema está en esta última clase, donde lo indico. Comento esta línea (y las que dependen de ella) y la app no se crashea, mientras dejánlosa sin comentar, peta.

Gracias de antemano.


EDITO 7/10/2017 20:20

Solucionado, me faltaba un espacio en la secuencia del create table. Gracias amigos.