Autore Topic: Problemi con inserimento dati da un edittext  (Letto 412 volte)

Offline Mirkooooo

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    S4 Mini
  • Sistema operativo:
    Windows 8
Problemi con inserimento dati da un edittext
« il: 12 Giugno 2014, 11:36:49 CEST »
0
Giorno a tutti, ho dei problemi a salvare i dati dentro un database sqlite. I dati li devo prendere da 3 EditText.
sto impazzendo, prima non avevo problemi, ora mi crasha l'app all'emulazione. :-(
La mia app consiste in una rubrica un po' spartana, al click del bottone 'inserisci contatto' mi manda su un altro layout per inserire i dati, qui inserirò i dati (nome, cognome, cellulare) e con il tasto salva prendo il testo inserito sotto forma di stringa e li dovrebbe salvare nel DB creato.
Al click del bottone per il passaggio sul layout inserisci l'app si blocca, in aggiunta non ho la più pallida idea di come gestirmi il tutto, io ho provato a fare mille prove, ma mi manca qualcosa, riuscite a indirizzarmi verso la via giusta? :-\


il codice XML del layout principale è il seguente:
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/edtextNCellulare"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="${packageName}.${activityClass}" >

    <EditText
       android:id="@+id/editTextCercaNomeCognome"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentTop="true"
       android:ems="10"
       android:hint="Cerca"
       android:inputType="textPersonName" >

        <requestFocus />
    </EditText>

    <TextView
       android:id="@+id/txtNome"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/editTextCercaNomeCognome"
       android:layout_marginTop="38dp"
       android:textSize= "28px"
       android:text="Nome" />

    <TextView
       android:id="@+id/txtCognome"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/txtNome"
       android:layout_marginTop="46dp"
       android:textSize= "28px"
       android:text="Cognome" />

    <TextView
       android:id="@+id/txtNCellulare"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/txtCognome"
       android:layout_marginTop="38dp"
        android:textSize= "28px"
       android:text="N° Cellulare" />

    <Button
       android:id="@+id/btnInserisciContatto"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentRight="true"
       android:layout_marginBottom="23dp"
       android:layout_marginRight="19dp"
       android:background="#FFB050"
       android:text="Inserisci contatto" />

    <TextView
       android:id="@+id/txtNome2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_above="@+id/txtNCellulare"
       android:layout_alignRight="@+id/btnInserisciContatto"
       android:layout_marginRight="16dp"
       android:text="@string/str_vuoto" />

    <TextView
       android:id="@+id/txtTitolo"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_above="@+id/txtCognome"
       android:layout_alignLeft="@+id/txtNome2"
       android:text="@string/str_vuoto" />

    <TextView
       android:id="@+id/TextView01"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/txtNCellulare"
       android:layout_alignLeft="@+id/txtNome2"
       android:text="@string/str_vuoto" />

    <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/btnInserisciContatto"
       android:layout_alignRight="@+id/txtCognome"
       android:layout_marginBottom="33dp"
       android:text="Button" />

</RelativeLayout>



Il codice XML del layout per inserire i dati è:
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/btnSalva"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="${packageName}.${activityClass}" >

    <TextView
       android:id="@+id/txtNome2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/txtTitolo"
       android:layout_marginTop="44dp"
       android:textSize= "28px"
       android:text="Nome" />

    <EditText
       android:id="@+id/edtxtNome"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/txtNome2"
       android:layout_alignBottom="@+id/txtNome2"
       android:layout_alignLeft="@+id/edtxtNCellulare"
       android:ems="10"
       android:hint="Nome" />

    <EditText
       android:id="@+id/edtxtNCellulare"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/txtNCellulare2"
       android:layout_alignParentRight="true"
       android:ems="10"
       android:hint="N° Cellulare"
       android:inputType="phone" />

    <Button
       android:id="@+id/btnFine"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentRight="true"
       android:layout_marginBottom="16dp"
       android:layout_marginRight="27dp"
       android:background="#FFB050"
       android:text="Fine" />

    <TextView
       android:id="@+id/txtTitolo"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true"
       android:layout_marginTop="24dp"
       android:text="Inserisci i dati del contatto"
       android:textSize="35px" />

    <TextView
       android:id="@+id/txtCognome2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/edtxtNome"
       android:layout_marginTop="61dp"
       android:text="Cognome"
       android:textSize="28px" />

    <TextView
       android:id="@+id/txtNCellulare2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/edtxtCognome"
       android:layout_marginTop="52dp"
       android:text="N° Cellulare"
       android:textSize="28px" />

    <EditText
       android:id="@+id/edtxtCognome"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/txtCognome2"
       android:layout_alignParentRight="true"
       android:ems="10"
       android:hint="Cognome" >

+ Allegati ed altre opzioni
scorciatoie: premi ALT+S per inserire un post o ALT+P per l'anteprima
 


SMF 2.0.7 | SMF © 2011, Simple Machines
Sitemap XHTML RSS WAP2
Pagina creata in 0.441 secondi con 7 in
        <requestFocus />
    </EditText>

    <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/btnFine"
       android:layout_alignRight="@+id/txtCognome2"
       android:background="#FFB050"
       android:text="Salva" />

</RelativeLayout>


Codice della MainActivity
Codice (Java): [Seleziona]
package com.example.rubrica;


                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 MainActivity extends Activity {

                    @Override
                    public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.activity_main);
                       
                       
                        /*Creo un listener che mi permette di ascoltare il click del bottone e mi permette
                        di passare all'altro layout */

                        Button btnInserisciContatto = (Button)findViewById(R.id.btnInserisciContatto);
                        btnInserisciContatto.setOnClickListener(new OnClickListener() {
                                        public void onClick(View v) {
                                                Intent intent = new Intent(
                                                                getApplicationContext(),
                                                                pass_secondo_layout.class      
                                                );
                                                startActivity(intent);
                                        }
                                });
                    }
                   
                   
                }




Codice del secondo layout
Codice (Java): [Seleziona]
/* Ho creato questa classe per permettere il passaggio da un layout all'altro*/

package com.example.rubrica;



import android.app.Activity;
import android.content.ContentValues;
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 pass_secondo_layout extends Activity {
               
               
               
               
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.inserisci_dati);

                       
                    //Dichiaro il bottone
                Button btnFine = (Button)findViewById(R.id.btnFine);
                //pressione del punsante
                btnFine.setOnClickListener(new OnClickListener() {
                                public void onClick(View v) {
                                        Intent intent = new Intent(
                                                        getApplicationContext(),
                                                        MainActivity.class
                                                );
                                        startActivity(intent);
                                }
                        });
               
               
               
                //Dichiaro il bottone
                Button btnSalva = (Button)findViewById(R.id.btnSalva);
                //pressione  del pulsante
                btnSalva.setOnClickListener(new OnClickListener(){
                        public void onClick(View v){
                               
                         
                                //Dichiaro gli editText
                                EditText edtxtNome =(EditText) findViewById(R.id.edtxtNome);
                                EditText edtxtCognome=(EditText) findViewById(R.id.edtxtCognome);
                                EditText edtxtNCellulare=(EditText) findViewById(R.id.edtxtNCellulare);
                               
                                MioDatabaseHelper mioDatabaseHelper;

                               
                                Toast t;
                               
                               
                                       
                                        //CREO UN'ISTANZA DEL DATABASE
                                                        mioDatabaseHelper = new MioDatabaseHelper(this);
                                                       
                                                                               
                                                       
                                        //INSERT       
                                                        //Dichiaro che il mio database lo utilizzerò in scrittura
                                                        SQLiteDatabase db = mioDatabaseHelper.getWritableDatabase();
                                                       
                                                        //Preparo i valori da inserire nella tabella
                                                        ContentValues values = new ContentValues();
                                                        //values.put("_id",1);
                                                        // -id è autoincrementante di suo....
                                                        values.put("nome","nome");
                                                        values.put("cognome","cognome");
                                                        values.put("telefono","cellulare");
                                                       
                                                       
                                                       
                                                       
                                                        //Eseguo l'inserimento dei valori nella tabella agenda
                                                        long id = db.insert("contatto", null, values);
                                                        System.out.print("id operazione insert = " + id);
                                                       
                                                        db.close();
                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                        //SELECT               
                                                        //riapro per lettura
                                                    db = mioDatabaseHelper.getReadableDatabase();
                                                   
                                                        Cursor cursor = db.query("contatto", null, null, null, null, null, null);
                                                       
                                                        int count = 0;         
                                                        long id1 = 0;
                                                       
                                                        count = cursor.getCount();     
                                                       
                                                        while (cursor.moveToNext()) {
                                                               
                                                                id1 = cursor.getLong(0);
                                                                String nome = cursor.getString(1);
                                                                String cognome = cursor.getString(2);
                                                                String telefono = cursor.getString(3);
                                                                edtxtNome.setText(nome.toString());
                                                                edtxtCognome.setText(cognome.toString());
                                                                edtxtNCellulare.setText(telefono.toString());
                                                               
                                                        }
                                                       
                                                        String k = "count: " + count + " , id: " + id1 ;
                                                        t=Toast.makeText(getApplicationContext(),
                                                                                k, Toast.LENGTH_LONG);
                                                       
                                                        t.show();
                                                       
                                                        db.close();
                                       
                                }

                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                       
                               
                       
                });
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               

                }
        }




Codice del DB
Codice (Java): [Seleziona]
package com.example.rubrica;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.view.View.OnClickListener;

public class MioDatabaseHelper extends SQLiteOpenHelper {
       
        private static final String DB_NAME = "Contatto.db";
       
        private static final int DB_VERSION = 1;
       
        public MioDatabaseHelper(OnClickListener onClickListener) {
                super((Context) onClickListener, DB_NAME, null, DB_VERSION);
        }
       
        @Override
        public void onCreate(SQLiteDatabase db) {
                // Creazione delle tabelle
                String sql = "";
                sql += "CREATE TABLE contatto(";
                sql += " _id INTEGER PRIMARY KEY,";
                sql += " nome     STRING NOT NULL,";
                sql += " cognome  STRING NOT NULL,";
                sql += " telefono STRING NOT NULL";
                sql += ")";
                db.execSQL(sql);
        }
       
        @Override
        public void onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion) {
                // Aggiornamento delle tabelle

        }
       
               
               
               
}



Scusate il casino  :-o ma sto facendo mille prove.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problemi con inserimento dati da un edittext
« Risposta #1 il: 12 Giugno 2014, 12:37:11 CEST »
0
Se c'è un crash, nel LogCat trovi scritta la causa e la riga di codice che l'ha generata.
Se hai difficoltà ad interpretare i messaggi d'errore nel LogCat, postalo qua.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store