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

Android Discussion :

Développer une application pour un journal


Sujet :

Android

  1. #21
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Merci, je vais aller voir ça

    En fait l'application va être utilisé pour des sites.
    Quand quelqu'un va ajouter une news sur son site, elle serra dans l'application.

    C'est très pratique :
    android:lines
    android:maxLines
    android:singleLine
    android:ellipsize

    Par contre j'ai un problème avec ellipsize, imagineons que comme texte j'ai :
    Ligne 1 ________________
    Ligne 2 ________________

    Je voudrais que ça affiche :
    Ligne 1 _____
    ____________
    _________...

    Mais ça affiche :
    Ligne 1 _____
    _________...
    Ligne 2 ___...

    Le texte à la base est dans un <description> dans un flux RSS et le problème intervient quand il y a un retour à la ligne.
    Je suppose que je peux régler le problème en faisait une opération sur la String récupéré.
    Ou alors je n'utilise pas ellipsize, tant pis pour les "...".

    Edit :
    En fait il semblerait que elippsize ne fonctionne qu'avec maximum 2 lignes.
    J'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    description=_description.replaceAll("[\r\n]+", "");
    Et j'ai eu :
    Ligne 1 _______
    __________...

    Alors que android:lines="3" ou même 4 pour le test.

    http://code.google.com/p/android/issues/detail?id=2254
    Keith Flint 1969 - 2019

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    J'aimerai développer ce genre d'application aussi, mais j'aurai besoin de ton aide notamment pour la récupération d'info depuis un serveur ou un flux rss.
    Je t'ai envoyé un message privé pour prendre contact

  3. #23
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    bonjour j'ai bien aimé votre projet au fait j'aimerais bien si c'est possible avoir un lien pour télécharger toute l'application après modifiction si ça vous dérange pas.
    Merci

  4. #24
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    Merci, je vais aller voir ça

    En fait il semblerait que elippsize ne fonctionne qu'avec maximum 2 lignes.
    J'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    description=_description.replaceAll("[\r\n]+", "");
    Et j'ai eu :
    Ligne 1 _______
    __________...

    Alors que android:lines="3" ou même 4 pour le test.

    http://code.google.com/p/android/issues/detail?id=2254

    Bien vu pour les retour à la ligne c'est ce qu'il fallait faire

    Il faudrait customiser se propre TextView
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #25
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Bon les gars, moi j'ai pris ça :
    http://enestaylan.com/ideas/2010/06/...er-in-android/
    Et je l'ai mélangé avec ça :
    http://mickael-lt.developpez.com/tut...iser-listview/

    Je récupère une ArrayList d'itemRSS et après chaque itemRSS j'en fais une ligne dans une listView.
    J'ai un peu arrêté de bosser là dessus.
    Mais un code source est disponible dans ce topic.

    =======================
    En fait 2 lignes c'est parfait
    J'avais pas pu tester en dehors de l'émulateur parce que je n'avais pas de téléphone sous Android, mais on m'en a prêté un.

    ==========================
    Je vais peut être rebossé dessus cet après midi.
    Je voudrais faire des news sans image, ou des news avec des videos.
    Au lieu de mettre le layout dans un .xml, je voudrais le faire en Java.
    Keith Flint 1969 - 2019

  6. #26
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    J'ai exporté mon projet pour ceux que ça intéresse :
    http://iris.jh.free.fr/moi/android/journal-28-03.jar

    Il est simple de l'importer dans Eclipse, déjà qu'en l'archivant c'est déjà simple à l'importer, mais là c'est encore pire.

    ========================================
    Il y a un truc que je dois mal faire.
    J'aimerais que quand l'utilisateur clique sur le titre, le texte ou l'image une action se passe et j'ai écris ça comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    OnClickListener listener = new OnClickListener() {
    	@Override
    	public void onClick(View v) {
    		Integer position = (Integer)v.getTag();
    		sendListener(mListN.get(position), position);			
    }};
     
    tv_Image.setTag(position);
    tv_Texte.setTag(position);
    tv_Titre.setTag(position);
    tv_Image.setOnClickListener(listener);    
    tv_Texte.setOnClickListener(listener);
    tv_Titre.setOnClickListener(listener);
    C'est propre de faire 3 setTag et 3 setOnClickListener de suite ?
    Ou existe t'il une meileure solution ?

    Il me semble avoir vu une autre solution avec ça dans le xml :
    Keith Flint 1969 - 2019

  7. #27
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    je trouve une difficulté quand j'importe votre projet.
    Si c'est possible me le passer en zip
    merci

  8. #28
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Il y a un truc que je dois mal faire.
    J'aimerais que quand l'utilisateur clique sur le titre, le texte ou l'image une action se passe et j'ai écris ça comme ça :
    ça reviendrait a cliquer sur l'item en fait , alors pourquoi ne pas mettre directement le listener sur celui ci ?

    De plus tu peux récupérer le position de l'item sélectionné ou cliqué ce qui t'évitera d'avoir un tag, au pire tu peux toujours mettre un tag sur la view sélectionné à partir de ton adapter .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  9. #29
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Citation Envoyé par emnaf Voir le message
    je trouve une difficulté quand j'importe votre projet.
    Si c'est possible me le passer en zip
    Tu peux décompresser un .jar comme si c'était un .zip, il te faut juste un archiveur, le meilleur est sans doute 7zip et il est gratuit, mais tiens :
    http://iris.jh.free.fr/moi/android/Journal-28-03.zip

    Citation Envoyé par Feanorin Voir le message
    Bonjour,
    ça reviendrait a cliquer sur l'item en fait , alors pourquoi ne pas mettre directement le listener sur celui ci ?
    Ok merci pour le conseil, je vais essayer.
    Ouais mais je fais comment, je dis que ma classe item elle est extends de View ou quelque chose comme ça ?
    La méthode ce serait : setOnItemSelectedListener() ?
    Ca ne passe pas sur mon objet.

    En fait que le view soit clickable ce serait au moins aussi bien, mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		View news = (View)layoutItem.findViewById(R.layout.news_layout);  
    		news.setTag(position);
    		news.setOnClickListener(listener);
    Ne passe pas non plus.

    Ca passe avec un LinearLayout, par contre le fond de la ligne ne change plus de couleur.

    ==================================
    Ce que j'aimerais faire là, c'est lancer un thread et mettre un progressdialog pendant que tout ce fait.
    Et après gérer l'erreur, genre si on est hors ligne on met un alertdialog.
    Keith Flint 1969 - 2019

  10. #30
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Ouais mais je fais comment, je dis que ma classe item elle est extends de View ou quelque chose comme ça ?
    Normalement si tu utilises cette méthode sur ta liste, tu devrait intercepter l'événement du click. Cette méthode est déjà implémenter dans la class ListView .

    http://developer.android.com/referen...ickListener%29

    Ce que j'aimerais faire là, c'est lancer un thread et mettre un progressdialog pendant que tout ce fait.
    Et après gérer l'erreur, genre si on est hors ligne on met un alertdialog.
    Lance un nouveau thread qui appellera un showDialog d'une progress. Méfie toi le thread doit être runOnUIThread , ou alors passe par un handler pour prévenir l'interface graphique du show/dismiss de ta progress .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  11. #31
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Normalement si tu utilises cette méthode sur ta liste, tu devrait intercepter l'événement du click. Cette méthode est déjà implémenter dans la class ListView .

    http://developer.android.com/referen...ickListener%29
    Merci, en fait je bricolais pas dans la bonne classe.
    Là effectivement ça marche, le seul truc c'est que je fais juste un System.out.println maintenant.
    Faut que je récupère le traitement que j'avais avant.

    Bon ben en une ligne ça fonctionne.
    C'est cool, merci

    Par contre j'ai l'impression que j'ai des trucs à virer dans mon NewsAdapter.
    Parce que j'étais sur une base de ça :
    Personnaliser une ListView

    Mais du coup j'ai plus besoin de plusieurs méthodes.

    Par contre j'ai un problème avec ma méthode getView, apparemment elle n'arrête pas de se lancer et c'est le désordre avec les images.
    Enfin bon je verais ça plus tard.

    ==========================================
    J'essaie de comprendre ce tutorial :
    Utiliser une ProgressDialog dans ses applications Android
    Keith Flint 1969 - 2019

  12. #32
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    C'est pas mal runOnUiThread ça m'a permit de changer l'interface en dehors de onCreate().

    Mais bon si ça se trouve ça me servira à rien.
    J'arrive toujours pas à afficher un ProgressDialog dès que l'application se lance.
    Là tout aparait en même temps...

    J'arrive pas non plus avec AsyncTask, je vais essayer les Handler.

    Edit :
    Quoi que AsyncTask ça va bien pour ce que je veux faire, je vois bien le dialog dans le onPreExecute(), le traitement dans doInBackground et dismiss() dans onPostExecute().

    Je trouverais ça chouette, pour l'instant j'arrive à lancer le progressDialog !
    Mais ça plante peut après.
    Cela dit c'est déjà pas mal.

    C'est chiant là en fait, parce que sans runOnUiThread le progressDialog s'affiche mais le programme plante et avec le runOnUiThread le progressDialog ne s'affiche pas, mais le programme fonctionne...

    ====================================
    Je viens de faire des tests et sans surprise c'est lorsque je récupère l'ArayList d'RssItem que ça prend du temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rssItems=RssItem.getRssItems(feedUrl);
    J'ai calculé avec des System.currentTimeMillis();

    J'essayais de faire tout ça dans un thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		listener=getListener();
    		rssItems=RssItem.getRssItems(feedUrl);
    		rssListView = (ListView) findViewById(R.id.rssListView);
    		rssListView.setOnItemClickListener(listener);
    		NewsAdapter adapter = new NewsAdapter(mContext, rssItems ); 
    		rssListView.setAdapter(adapter);
    Mais en fait il faudrait que dès que l'application se lance il y ait un progressDialog et pendant ce temps un thread récupérerait l'ArrayList.
    Une fois ce thread fini je pourais arrêter le progressDialog et afficher les news.

    J'ai éssayé de faire un wait(), mais j'ai eu du mal à faire que ça marche.
    Ca me semblait plus simple en C++.
    Keith Flint 1969 - 2019

  13. #33
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    J'ai trouvé :
    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
    	private Handler handler = new Handler();
    	private ProgressDialog dialog;
     
    	// onCreate :
       dialog = ProgressDialog.show(........
       Thread t = new Thread() {
            public void run() {
                // Récupère les RssItem
                handler.post(new Runnable() {
                    public void run() {
                        dialog.dismiss();
                        // Construit l'affichage
                    };
                });
            }
        };
     
        t.start();
    Dans le onCreate je fais un thread qui va chercher ce qu'il faut, et quand c'est fini j'affiche.
    Bon par contre, le progressDialog ne tourne pas longtemps, mais au moins il est là, je pense que c'est du au fait, que je modifie l'affichage.

    L'étape suivante, c'est d'avertir et de couper l'application lorsqu'on arrive pas à récupérer le flux RSS.
    J'arrive à faire un System.out.println() à ce moment là, donc j'y suis presque

    Edit :
    Ah m'en en fait onCreate ça ce lance dès que tu retourne l'écran !
    Ca marche pas mon truc alors, si je vais récupérer tout le flux RSS à chaque fois...

    Re Edit :
    Pour gérer l'erreur du flux RSS indisponible (si le téléphone est hors ligne ou si le serveur hébérgeant le fichier.rss déconne, par exemple), je retourne une ArrayList vide, après je test : si l'ArrayList contient le flux RSS j'affiche, sinon j'arrête l'application.

    J'aime bien les tabulations et les retours à la ligne :
    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
    runOnUiThread(new Runnable() 
    {
    	public void run() 
    	{
    		AlertDialog alertDialog = new AlertDialog.Builder(AndroidRSSReader.this).create();
    		alertDialog.setTitle("Erreur de connexion");
    		alertDialog.setMessage("L'application va se terminer.");
    		alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
    		{
    			  public void onClick(DialogInterface dialog, int which) 
    			  {
    				  finish();
    			  } 
    		});
    		alertDialog.show();
    	}
    });

    ==========================================
    J'ai fais des tests ça ne va pas du tout mon histoire !
    Si deux images sont visible elles sont chargé, mais si je descend d'autres son chargé et si je remonte celles qui avaient déjà été chargé sont rechargé.

    Bon j'explique mal, mais en gros j'aimerais qu'une fois que tout est téléchargé, ça reste en mémoire dans l'application.
    Keith Flint 1969 - 2019

  14. #34
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Je vais essayer de faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(savedInstanceState==null)
    {
       // Je récupère le flux et les images et je les met en mémoire
    }
    else
    {
       // Je redessine avec ce qui est en mémoire
    }
    Ca peut être jouable ?

    Edit :
    Déjà j'avais mal réfléchis, dans ma classe RssItem, je mémorisais l'adresse de l'image en String et j'allais chercher les images dans NewsAdapter, alors que si je met des Bitmap dans la classe RssItem, tout est fluide.

    Bon par contre pour le moment, dès que je change d'orientation ça recharche tout, mais ça fait plaisir de voir un ProgressDialog qui fonctionne.

    Edit :
    Je viens de me rendre compte que toutes les variables d'une classe Activity se perdent super fréquement.
    Du coup maintenant j'enregistre mon ArrayList de RssItem dans la classe RssItem et j'appelle la méthode qui va tout récupérer que lorsque savedInstanceState est égal à null.
    Keith Flint 1969 - 2019

  15. #35
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Edit :
    Déjà j'avais mal réfléchis, dans ma classe RssItem, je mémorisais l'adresse de l'image en String et j'allais chercher les images dans NewsAdapter, alors que si je met des Bitmap dans la classe RssItem, tout est fluide.
    Pas forcément , il faut vraiment que tu te méfie de la mémoire alloué pour tes bitmap, a vouloir les garder en mémoire tu risques d'exploser celle-ci.

    Maintenant si la taille des bitmaps n'est pas conséquente la solution de les garder en mémoire est meilleure de point de vue rapidité .

    a peut être jouable ?
    Oui cela est jouable , mais tu vas garder un paquet de mémoire en plus lors de ta rotation , a voir comment elle influe. Ca risque de déborder enfin à voir en fonction toujours de la taille de tes bitmaps .

    Sinon tu peux toujours passer via un service qui peut être utile, si tu as un traitement autre sur ces bitmaps à partir d'une nouvelle activity .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  16. #36
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Merci pour la réponse.
    En fait il me manque des précisions.
    Mais si j'ai bien compris je réalise une application Android qui affiche les news d'un site.

    J'afficherais les 10 dernières News par exemple.
    Ca fera au maximum 10 jpeg de moins de 100 Ko.

    Parce que je suppose qu'il ni a pas toujours d'image posté avec une News, parfois c'est un lien vers une vidéo Dailymotion et parfois c'est rien du tout.

    Je ne pense pas que la mémoire soit un problème à ce niveau là.
    Au pire je m'arrange pour que dans le flux RSS il y a un enclosure avec l'adresse d'une vignette, et un autre avec l'adresse de l'image en grand.
    Comme ça je met les vignettes en mémoire et je charge les grandes images.

    Là j'aimerais empêcher l'Activity de changer d'état dans son cycle de vie.
    En fait j'ai juste besoin de l'empecher de changer l'orientation de l'écran le temps de récupérer le flux.

    Parce que là lors du chargement si je fais tourner mon téléphone 2 fois très vite, le programme plante.
    Keith Flint 1969 - 2019

  17. #37
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,
    J'afficherais les 10 dernières News par exemple.
    Ca fera au maximum 10 jpeg de moins de 100 Ko.

    Je ne pense pas que la mémoire soit un problème à ce niveau là.

    Considère que pour ton application tu as que 12Mo de libre , ce qui serait alors largement suffisant pour tes bitmaps .
    Donc pas de souci de ce côté là .

    Parce que là lors du chargement si je fais tourner mon téléphone 2 fois très vite, le programme plante.
    Par quoi passes-tu pour récupérer ton flux RSS maintenant , Thread AsyncTask , ... ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  18. #38
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Je passe par un Thread, mais apparemment j'ai réglé le problème gràce à la première idée que j'ai eu.

    J'empêche la rotation de l'écran losque le thread est lancé, je met un boolean=true lorsque le thread se lance, et je le repasse à false quand le thread est fini.
    Le thread ce lance à chaque fois que je tourne l'écran...

    Dans le manifest, j'ai mis dans l'activity concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:configChanges="orientation"
    Et j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	@Override
    	public void onConfigurationChanged(Configuration newConfig) {
    	    super.onConfigurationChanged(newConfig);
    	    if(orientation==false)
    	    {
    	    	setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    	    }
    	}
    Quelque part j'ignore pourquoi ça fonctionne...
    Mais apparemment ça plante plus.

    Voila le code du thread :
    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
    Thread t = new Thread() 
    {
    	public void run() 
    	{
    		listener=getListener();
     
    		if(test==true)
    		{    			
    			rssItems = RssItem.getRssItems(feedUrl);
    		}
    		else
    		{
    			rssItems = RssItem.liste;
    		}
    		if(rssItems!=null)
    		{
    			rssListView = (ListView) findViewById(R.id.rssListView);
    			rssListView.setOnItemClickListener(listener);
    			adapter = new NewsAdapter(AndroidRSSReader.this, rssItems ); 
    			runOnUiThread(new Runnable(){
    				public void run(){
    					rssListView.setAdapter(adapter);}
    			});
     
    			handler.post(new Runnable(){
    				public void run(){
    					mProgressDialog.dismiss();};
    			});
    		}
    		else
    		{
    			mProgressDialog.dismiss();
    			System.out.println("Test");
     
    			runOnUiThread(new Runnable(){
    				public void run(){
    					AlertDialog alertDialog = new AlertDialog.Builder(AndroidRSSReader.this).create();
    					alertDialog.setTitle("Erreur de connexion");
    					alertDialog.setMessage("L'application va se terminer.");
    					alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
    					{
    						  public void onClick(DialogInterface dialog, int which){
    							  finish();} 
    					});
    					alertDialog.show();
    				}
    			});
    		}
    	}
    };
    t.start();
    Keith Flint 1969 - 2019

  19. #39
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Re,

    Quelque part j'ignore pourquoi ça fonctionne...
    Mais apparemment ça plante plus.
    En fait quand tu tourne l'écran l'activity se relance comme tu as pu le constater , je en sais plus si c'est sur le paysage ou le portrait mais sur un des deux il se relance deux fois .

    Lorsque tu exécutes ton run dans le onCreate celui-ci se lance et continue malgré la fermeture de ton activity tant qu'il n' a pas fini ou que l'on ne lui dit pas de se fermer.

    Et vu ton code quand celui-ci devait arriver sur ton affichage de ta progress , la zone mémoire de ta variable mProgressDialog devait lui poser quelque souci , comme ton handler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    Ton code permet a l'activity de ne pas se fermer donc de garder ces deux variables au chaud .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  20. #40
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Merci, pour ces précisions.

    Je n'ai pas saisi précisement pourquoi ce code permet d'empêcher l'activity de se fermer, mais en tout cas c'est chouette.

    Parce que là, même pendant le chargement, le progressDialog suit l'orientation du téléphone.

    Maintenant il faut que je comprenne, des choses à propos de la gestion des layout/view depuis la classe.

    Edit :
    En fait rien qu'avec ça, ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:configChanges="orientation"
    Sans rien d'autre.
    C'est étrange et je pense que j'ai l'air con à tourner mon téléphone depuis tout à l'heure.

    Edit :
    Ah ben sachant que j'étais partie de ça :
    http://mickael-lt.developpez.com/tut...iser-listview/

    J'avais une méthode getView(), qui retournait un LinearLayout pour chaque ligne.
    Alors selon l'item je choisi tel ou tel layout et je le remplit selon.
    C'est cool.


    ======================
    J'ai loupé des trucs en RSS, apparement au lieu de mettre une image en enclosure dans l'item je peux ajouter une image à une item avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <media:content url="http://***.jpg" medium="image" height="75" width="75"/>
    <media:description>***</media:description>
    <media:credit>***</media:credit>
    Bon en même temps j'y connais rien en RSS et là j'essaie de copier le New York Times, ça commence comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <rss xmlns:dc="http://purl.org/dc/elements/1.1/"
           xmlns:media="http://search.yahoo.com/mrss/" 
           xmlns:atom="http://www.w3.org/2005/Atom" 
           xmlns:nyt="http://www.nytimes.com/namespaces/rss/2.0" version="2.0" 
           xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">
    Quoi que sur w3school c'est mis en enclosure les images et videos d'item.
    http://www.w3schools.com/rss/tryrss....s_ex_enclosure
    Je pense que pour moi ce sera suffisant.
    Mais sinon ça peut être chouette d'avoir plus de balise par item.
    Keith Flint 1969 - 2019

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Développer une application pour le web aujourd'hui
    Par krzysiu dans le forum Web & réseau
    Réponses: 22
    Dernier message: 06/08/2013, 14h16
  2. Développer une application pour tablette Surface RT
    Par mulfycrowh dans le forum C++
    Réponses: 0
    Dernier message: 09/12/2012, 23h16
  3. [Jena] Développer une application pour l'alignement d'ontologies
    Par minazed dans le forum Frameworks
    Réponses: 1
    Dernier message: 11/04/2012, 16h05
  4. Développer une application pour iPod Shuffle sous eclipse/ubuntu en Java
    Par Sidharta.1978 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 13/07/2011, 18h03
  5. Comment développer une application pour CE?
    Par highdata dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/06/2007, 10h47

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