Autore Topic: aiuto SQLite  (Letto 622 volte)

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
aiuto SQLite
« il: 22 Dicembre 2010, 16:40:16 CET »
0
Ho fatto un codice semplicissimo che mi crea un database e una tabella e me la fa vedere a video. Tuttavia mi da sempre errore e non capisco il motivo  :'(

//creo il db
Codice (Java): [Seleziona]
public class DB extends SQLiteOpenHelper{

        public static final String NOME="nome";
        public static final String CAT="cat";

        public DB(Context context) {
                super(context, "db" , null, 1);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
               
                db.execSQL("CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, cat TEXT);");        
                ContentValues cv = new ContentValues();        
                cv.put(NOME, "Coop");
                cv.put(CAT, "Supermercato");
                db.insert("table1", NOME, cv);
       
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }


}
//lo faccio vedere a video
Codice (Java): [Seleziona]
public class Demo extends ListActivity {
   
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                       
                setContentView(R.layout.main);
                ListView list=(ListView)findViewById(R.id.list);       
                SQLiteDatabase db =(new DB(this)).getWritableDatabase();       
                Cursor c=db.rawQuery("SELECT id, nome, cat FROM table1",null);         
                ListAdapter adapter=new SimpleCursorAdapter(this,
                                                                                            R.layout.riga, c,
                                                                                            new String[] {"nome", "cat"},
                                                                                            new int[] {R.id.nome, R.id.cat});  
                list.setAdapter(adapter);
                db.close();
        }
 
}
main.xml
Codice (XML): [Seleziona]
<?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"
   >
   
        <ListView
                android:id="@+id/list"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:drawSelectorOnTop="false"
                />
               
</LinearLayout>
riga.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                >
        <TextView
                        android:id="@+id/nome"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        />
        <TextView
                        android:id="@+id/cat"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        />
</RelativeLayout>
« Ultima modifica: 22 Dicembre 2010, 16:45:35 CET da Sam »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:aiuto SQLite
« Risposta #1 il: 22 Dicembre 2010, 16:57:15 CET »
0
prima di dare un'occhiata a tutto il codice, sarebbe bene che specificassi quando ti da errore, e che postassi il logcat, così da poterlo individuare molto velocemente.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aiuto SQLite
« Risposta #2 il: 22 Dicembre 2010, 17:03:42 CET »
+1
Concordo sul log.
Comunque in Android ogni tabella deve avere un campo "_id", a te manda l'underscore.

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:aiuto SQLite
« Risposta #3 il: 22 Dicembre 2010, 17:11:30 CET »
0
il campo id con l'underscore l'avevo già provato (anche se non sapevo fosse obbligatorio), comunque non funziona.
Nella console mi compare due volte un nullpointer che fa riferimento alle classi Client e HandleHello.
L'errore avviene appena avvio l'applicazione e compare un force close.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:aiuto SQLite
« Risposta #4 il: 22 Dicembre 2010, 17:45:52 CET »
0
benissimo.
bisogna capire dove è il null pointer, per cui posta il logcat.
 :-)
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:aiuto SQLite
« Risposta #5 il: 22 Dicembre 2010, 18:03:59 CET »
0
Scusate mi sa che il nullpointer faceva parte di un altro run XD ora non è comparso.
Il logcat contiene questo:

Codice: [Seleziona]
12-22 16:58:15.084: ERROR/AndroidRuntime(280): FATAL EXCEPTION: main
12-22 16:58:15.084: ERROR/AndroidRuntime(280): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{prj.Progetto/prj.Progetto.DB}: java.lang.InstantiationException: prj.Progetto.DB
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.os.Looper.loop(Looper.java:123)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.ActivityThread.main(ActivityThread.java:4627)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at java.lang.reflect.Method.invokeNative(Native Method)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at java.lang.reflect.Method.invoke(Method.java:521)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at dalvik.system.NativeStart.main(Native Method)
12-22 16:58:15.084: ERROR/AndroidRuntime(280): Caused by: java.lang.InstantiationException: prj.Progetto.DB
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at java.lang.Class.newInstanceImpl(Native Method)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at java.lang.Class.newInstance(Class.java:1429)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
12-22 16:58:15.084: ERROR/AndroidRuntime(280):     ... 11 more

che comunque non saprei risolvere....

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:aiuto SQLite
« Risposta #6 il: 23 Dicembre 2010, 09:51:13 CET »
0
suppongo che la classe DB faccia parte di questo package: prj.Progetto.DB.
Nel tuo manifest, probabilmente hai qualcosa del tipo:

Codice (XML): [Seleziona]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="prj.Progetto"
...

e nella definizione delle activity, ripeti il package name
Codice (XML): [Seleziona]
<activity android:name="prj.Progetto.DB"...
dovresti semplicemente scrivere
Codice (XML): [Seleziona]
<activity android:name=".DB"...
Se non è questo il problema, dovresti postare le classi complete (per controllare i packagenames) e il manifest.

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:aiuto SQLite
« Risposta #7 il: 23 Dicembre 2010, 10:44:28 CET »
0
Nel manifest cè il codice giusto, nelle classi cè prj.Progetto...
Continuo a non capire il problema  :'(

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:aiuto SQLite
« Risposta #8 il: 23 Dicembre 2010, 10:57:40 CET »
0
sarebbe bene che postassi il progetto, in modo da poter toccare con mano il problema.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aiuto SQLite
« Risposta #9 il: 23 Dicembre 2010, 11:13:06 CET »
0
O che seguissi un qualche valido tutorial piuttosto che abbozzare improbabili soluzioni.