IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Contenu d'une base SQLite dans une ListView [Débutant(e)]


Sujet :

Composants graphiques Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Contenu d'une base SQLite dans une ListView
    Bonjour a tous, dans le cadre de notre PPE, nous voulons réaliser uneapploication android plutot simple (pour une boulangerie) qui consiste a afficher les produits, et d'autres choses, mais nous nous concentrons d'abord sur l'affichage des éléments, toutefois, pour cela, nous sommes confrontés a un soucis. En effet, rien ne s'affiche dans la listView, et j'ai du mal a trouve la source du probleme, voici mes classes :


    Classe DAOBase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
     
     
    public abstract class DAOBase {
    	// Nous sommes la premiere version de la base
    	//Si je décide de la mettre a jour, il faut changer cet attribut
     
    	protected final static int VERSION = 1;
     
    	//Nom du fichier de ma base
    	protected final static String NOM = "produits.db";
     
    	protected static SQLiteDatabase mDb = null;
    	protected DatabaseHandler mHandler = null;
     
    	public DAOBase(Context pContext)
    	{
    		this.mHandler = new DatabaseHandler (pContext, NOM, null, VERSION);
    	}
     
    	public SQLiteDatabase open()
    	{
    		//Pas besoin de fermer la derniere base puisque getWritableDatabase s'en charge
     
    		mDb = mHandler.getWritableDatabase();
    		return mDb;
    	}
     
    	public void close()
    	{
    		mDb.close();
    	}
     
     
    	public SQLiteDatabase getDb()
    	{
    		return mDb;
    	}
     
     
    }
    Classe DataBaseHandler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
     
     
    public class DatabaseHandler extends SQLiteOpenHelper {
     
    	public static final String PRODUITS_KEY = "_id"; //on donne les attributs en string
    	public static final String PRODUITS_NOM = "nomProd";
    	public static final String PRODUITS_DESCRIPTION = "description";
    	public static final String PRODUITS_PRIX = "prix";
    	public static final String PRODUITS_IMAGE = "image";
     
    	public static final String PRODUITS_TABLE_NAME = "produits";
     
    	// script SQLite de création de la base en fct des attributs plus hauts
    	public static final String PRODUITS_TABLE_CREATE = "CREATE TABLE " + PRODUITS_TABLE_NAME + " (" + PRODUITS_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT , " + PRODUITS_NOM + " TEXT, " + PRODUITS_DESCRIPTION + " TEXT, " + PRODUITS_PRIX + " REAL, " + PRODUITS_IMAGE + "TEXT);";
     
     
    	// script de suppression "drop table"
    	public static final String PRODUITS_TABLE_DROP = "DROP TABLE IF EXISTS " + PRODUITS_TABLE_NAME +";";
     
     
    	public DatabaseHandler(Context context, String name, CursorFactory factory, int version)
    	{
    		super(context, name, factory, version);
    	}
     
     
    	@Override
    	public void onCreate(SQLiteDatabase db)
    	{
    		db.execSQL(PRODUITS_TABLE_CREATE); // 
    	}
     
     
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldversion, int newversion) {
     
    		db.execSQL(PRODUITS_TABLE_DROP); // 
    		this.onCreate(db);
    		// TODO Auto-generated method stub
     
    	}
     
     
     
     
    }
    Classe MainActivity :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    import test.premiere_app.R;
    import android.os.Bundle;
    import android.app.Activity;
    import android.widget.ListView;
     
    public class MainActivity extends Activity {
     
    	 private ListView lstViewProduits ;
     
     
     @Override
     public void onCreate(final Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
     
         Produits unProduit = new Produits(1, "PremierProduit", "Pour tester", 1, "fichier.txt");
         ProduitsDAO.ajouter(unProduit);
     
         lstViewProduits=(ListView) findViewById (R.id.lstViewProduits);
     
     
     
         this.displayProduits();
     
     }
         public void displayProduits()
         {
        	 final ProduitsAdapter produitsAdapter = new ProduitsAdapter (this, ProduitsDAO.selectionnerAll() );
        	 lstViewProduits.setAdapter(produitsAdapter);
         }
     
     
    }
    Classe Produits :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    public class Produits {
     
    	private long _id; //on définit les attributs de façon classique
    	private String nomProd;
    	private String description;
    	private float prix;
    	private String image;
     
    	public Produits(long _id, String nomProd, String description, float prix, String image)
    	{
    		super(); //on appelle le super et on fait le constructeur de façon normale
    		this.set_id(_id);
    		this.setNomProd(nomProd);
    		this.setDescription(description);
    		this.setPrix(prix);
    		this.setImage(image);
    	}
     
    	//on fait tout les getters et setters
     
    	public long get_id() {
    		return _id;
    	}
     
    	public void set_id(long _id) {
    		this._id = _id;
    	}
     
    	public String getNomProd() {
    		return nomProd;
    	}
     
    	public void setNomProd(String nomProd) {
    		this.nomProd = nomProd;
    	}
     
    	public String getDescription() {
    		return description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    	public float getPrix() {
    		return prix;
    	}
     
    	public void setPrix(float prix) {
    		this.prix = prix;
    	}
     
    	public String getImage() {
    		return image;
    	}
     
    	public void setImage(String image) {
    		this.image = image;
    	}
     
    	// a faire pour chaque table
     
    }
    Classe ProduitsAdapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    import java.util.ArrayList;
     
    import test.premiere_app.R;
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.TextView;
     
    public class ProduitsAdapter extends ArrayAdapter<Produits> {
        /*******************************************************/
        /** ATTRIBUTS.
        /*******************************************************/
        private final ArrayList<Produits> lstProduits = new ArrayList<Produits>();
        private Context context;
     
     
        /*******************************************************/
        /** METHODES / FONCTIONS.
        /*******************************************************/
       /**
        * Constructeur.
        * @param context
        * @param lstProduits
        */
     
        public ProduitsAdapter(final Context context, final ArrayList<Produits> lstProduits) {
            super(context, android.R.id.text1, lstProduits);
            this.context = context;
     
            this.lstProduits.clear();
            this.lstProduits.addAll(lstProduits);
        }
     
     
        @Override
        public View getView(final int position, final View convertView, final ViewGroup parent) {
            View view = convertView;
     
            if (view == null) {
                LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.item_produits, null);
            }
     
            final Produits produit = lstProduits.get(position);
     
            if (produit != null) {         
                final TextView txtProduitNom = (TextView) view.findViewById(R.id.produitNom);
                final TextView txtProduitPrix = (TextView) view.findViewById(R.id.produitPrix);
     
                txtProduitNom.setText(produit.getNomProd());
                txtProduitPrix.setText("" + produit.getPrix());         
             }
     
            return view;
        }
    }
    Classe ProduitsDAO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    import java.util.ArrayList;
     
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
     
     
    public class ProduitsDAO extends DAOBase {
     
    	public ProduitsDAO(Context pContext) {
    		super(pContext);
    		// TODO Auto-generated constructor stub
    	}
     
    	public static final String TABLE_NAME = "produits"; //la table s'appelle produits
    	public static final String KEY = "_id"; //l'id est _id, on le définit en string
    	public static final String NOM = "nomProd"; //ainsi de suite
    	public static final String DESCRIPTION = "description";
    	public static final String PRIX = "prix";
    	public static final String IMAGE = "image";
     
    	//on définit un string qui contient la syntaxe SqLite de création de la base
    	public static final String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " (" + KEY + " INTEGER PRIMARY KEY AUTOINCREMENT , " + NOM + " TEXT, " + DESCRIPTION + " TEXT, " + PRIX + " REAL, " + IMAGE + "TEXT);";
     
    	//
    	public static final String TABLE_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME + ";";
     
     
    	// on définit des methodes qui permettront d'effectuer les requetes directement par envoi en paramaètre
    	public static void ajouter (Produits p)
    	{
    		// Code et requetes d'insertions
    		ContentValues value = new ContentValues();// on définit une préparation pour l'injection dans une requete insert
    		value.put(ProduitsDAO.KEY, p.get_id());
    		value.put(ProduitsDAO.NOM, p.getNomProd()); // correspondance entre les attributs de l'objet Produits et les propriétés de la table (1 à 1)
    		value.put(ProduitsDAO.DESCRIPTION,p.getDescription());
    		value.put(ProduitsDAO.PRIX, p.getPrix());
    		value.put(ProduitsDAO.IMAGE, p.getImage());
     
    		mDb.insert(ProduitsDAO.TABLE_NAME,null, value); //on insère dans la table
     
    	}
     
    	public void modifier (Produits p) //on donne un objet en parametre, pour qu'il soit modifié
    	{
    		// Code et requetes de suppression
    		ContentValues value = new ContentValues(); 
    		value.put(ProduitsDAO.NOM, p.getNomProd()); //on donne l'attribut dans sa forme string et on appelle la fct p.get de l'attribut
    		value.put(ProduitsDAO.DESCRIPTION,p.getDescription());
    		value.put(ProduitsDAO.PRIX, p.getPrix());
    		value.put(ProduitsDAO.IMAGE, p.getImage());
     
     
    		// script "automatisé" de modification d'un objet
    		mDb.update(ProduitsDAO.TABLE_NAME, value, KEY + " = ?", new String[] {String.valueOf(p.get_id())});
    	}
     
    	public void supprimer (int _id)
    	{
    		// Code et requetes de suppression
    		mDb.delete(ProduitsDAO.TABLE_NAME, KEY + " = ?", new String[] {String.valueOf(_id)});
    	}
     
    	public Produits selectionner (int _id) //afficher un produit dont on donne l'id en parametre
    	{
    		Produits p = new Produits(0, null, null, 0, null); //on définit un objet avec des valeurs "nulles"
     
    		//
     
    		Cursor c = mDb.rawQuery("select * from " + ProduitsDAO.TABLE_NAME + " where " + ProduitsDAO.KEY + " =  ? ", new String[] {String.valueOf(_id)} );
     
    			c.moveToFirst(); 
    			p.set_id(c.getLong(0)); 
    			p.setNomProd(c.getString(0));
    			p.setDescription(c.getString(0));
    			p.setPrix(c.getFloat(0));
    			p.setImage(c.getString(0));
     
    			c.close();
    		return p;
    	}
     
     
    	public static ArrayList<Produits> selectionnerAll () //template de produits, pour tous les afficher
    	{
    		Produits p; //nouvel objet
    		//
    		ArrayList<Produits> mesProduits = new ArrayList<Produits>(); //nouvelle instance
    		Cursor c = mDb.rawQuery("select * from " + ProduitsDAO.TABLE_NAME + ";", null ); //requete SQLite
     
    		for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) //boucle for avec des fonction pré-faites qui va du premier élément au dernier
    		{
    			p = new Produits(0, null, null, 0, null); //on définit un objet avec des valeurs nulles
    			p.set_id(c.getLong(0)); //et pour chaque attribut on récup les valeurs
    			p.setNomProd(c.getString(0));
    			p.setDescription(c.getString(0));
    			p.setPrix(c.getFloat(0));
    			p.setImage(c.getString(0));
    			mesProduits.add(p); // on rajoute le produit a la liste
    		}
    		c.close(); //on ferme le curseur
    		return mesProduits; //et on affiche tout :)
    	}
     
     
    }
    Main_activity.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
     
     
      <ListView android:id="@+id/lstViewProduits"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
      />
     
    </LinearLayout>
    item_produits.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?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="wrap_content" 
    >
     
        <TextView android:id="@+id/produitNom"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:textStyle="bold" 
        />
     
        <TextView android:id="@+id/produitPrix"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
        />
     
    </LinearLayout>
    Et enfin, un screen de ce qui est affiché :



    Si vous voulez d'autres infos, dites le, sinon si je dois utiliser des balises Spoil dites le, mais je sais pas ou elles se trouvent.

    Merci d'avance, il faudrait vraiment que nous avancions sur ce projet, car en étant bloqué la, nous perdons du temps...

    Merci encore!

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Heu... ça devrait afficher ça uniquement de l'éditeur de layout...
    Je vois mal comment il pourrait le faire dans l'émulateur.....

    Sinon, rajouter des Log de temps en temps, histoire de voir ou il passe
    (par exemple dans le getView() de l'adapter)
    Et nous donner ici le résultat du LogCat.


    Sinon... c'est quoi ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "" + produit.getPrix()
    Ce code va se transformer en:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    StringBuilder builder = new StringBuilder("");
    builder.append(new Float(produit.getPrix()));
        (qui va appeler Float.toString())
    builder.toString()
    Si c'est pour transformer un float en string il y a simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Float.toString(produit.getPrix())
    Et si c'est pour l'afficher, il faut passer un formatter...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NumberFormat nf = NumberFormat.getCurrencyInstance();
    nf.format(produit.getPrix());
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'avoue ne pas vous suivre... Dans quel but modifier tout cela? et que mettre parmi tout ce que vous m'avez proposé?
    Est-ce si déterminant que ça?

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oublions... tout ce que je disais c'est que le passage d'un flottant (getPrix()) en String affichable à l'utilisateur ne se fait pas par:
    ""+getPrix()


    Pour revenir au problème... le screen affiché semble être celui de l'éditeur de layout, pas de l'application qui tourne sur un émulateur....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oui en effet, quand je lance l'application sur un mobile emulé, j'ai :



    Je pense que c'est un probleme de package mais etrangement, je comprends pas trop leur fonctionnement, y'a des choses assez bizarres

    Le logcat contient :

    02-18 15:51:48.319: D/AndroidRuntime(219): Shutting down VM
    02-18 15:51:48.342: W/dalvikvm(219): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    02-18 15:51:48.342: E/AndroidRuntime(219): Uncaught handler: thread main exiting due to uncaught exception
    02-18 15:51:48.459: E/AndroidRuntime(219): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.premiere_app/test.premiere_app.MainActivity}: java.lang.NullPointerException
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.os.Handler.dispatchMessage(Handler.java:99)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.os.Looper.loop(Looper.java:123)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.ActivityThread.main(ActivityThread.java:4363)
    02-18 15:51:48.459: E/AndroidRuntime(219): at java.lang.reflect.Method.invokeNative(Native Method)
    02-18 15:51:48.459: E/AndroidRuntime(219): at java.lang.reflect.Method.invoke(Method.java:521)
    02-18 15:51:48.459: E/AndroidRuntime(219): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    02-18 15:51:48.459: E/AndroidRuntime(219): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    02-18 15:51:48.459: E/AndroidRuntime(219): at dalvik.system.NativeStart.main(Native Method)
    02-18 15:51:48.459: E/AndroidRuntime(219): Caused by: java.lang.NullPointerException
    02-18 15:51:48.459: E/AndroidRuntime(219): at test.premiere_app.ProduitsDAO.ajouter(ProduitsDAO.java:41)
    02-18 15:51:48.459: E/AndroidRuntime(219): at test.premiere_app.MainActivity.onCreate(MainActivity.java:19)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    02-18 15:51:48.459: E/AndroidRuntime(219): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    02-18 15:51:48.459: E/AndroidRuntime(219): ... 11 more
    02-18 15:51:48.532: I/dalvikvm(219): threadid=7: reacting to signal 3
    02-18 15:51:48.549: E/dalvikvm(219): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non c'est une erreur de développement:

    02-18 15:51:48.459: E/AndroidRuntime(219): Caused by: java.lang.NullPointerException
    02-18 15:51:48.459: E/AndroidRuntime(219): at test.premiere_app.ProduitsDAO.ajouter(ProduitsDAO.java:41)
    Fichier ProduitsDAO.java, ligne 41, dans la fonction ajouter()
    Utilisation d'un objet null (appel de fonction sur un objet null / accès à un membre d'un objet null).

    Si les fichiers sont juste: "mDb" est null
    Si mDb est null, si j'ai bien compris le code, c'est que open(context) n'a jamais été appelé...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Que dois-je faire pour réparer cela?

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai cru comprendre aussi qu'il fallait utiliser open() mais je sais pas ou, personne pour m'aider?

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Avant d'utiliser mDB en tous cas
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut affichage des images dans sqlite
    Bonjour,
    je sais que votre discussion datte un peu, mais j'ai vraiment besoin d'aide! moi aussi je voudrais afficher des images de produits ainsi que leurs caractéristiques dans mon application via Sqlite, je suis nulle en programmation android, je commence de zéro et je n'ai qu'un mois pour finir. Sachant que j'ai parcouru tout le net depuis mois de mars , je n'arrive pas a faire une simple listeView avec images de la base de données!
    aidez moi!! comment commencer? (sachant que j'ai fais ma page d'accueil ainsi le lien qui mène vers cette page de produits) quelles sont les fichiers xml et les classes java dont j'en aurais besoin? SVP SVP des explications!
    Merciii

Discussions similaires

  1. [Lazarus] Tester si une table existe dans une base Sqlite
    Par ovni76 dans le forum Lazarus
    Réponses: 7
    Dernier message: 16/10/2014, 20h54
  2. Affichage du contenu d'une BDD SQLite dans une ListView
    Par mike3012 dans le forum Composants graphiques
    Réponses: 17
    Dernier message: 26/08/2012, 03h34
  3. [AC-2003] Import depuis une base A dans une Base B
    Par ted the Ors dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/01/2010, 19h59
  4. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo