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 :

Fermeture application sur clic bouton


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Points : 61
    Points
    61
    Par défaut Fermeture application sur clic bouton
    Bonjour,

    J'ai une application ou il y a un bouton qui permet d'effacer ce que l'utilisateur a dessiné.

    L'application fonctionne bien sauf sur Android 4.1.1 où quand on clique sur le bouton, l'application se ferme.

    Voici le code du onClick du bouton :

    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
     
                Bitmap precedentDessin;
                private ArrayList<Path> dessin = new ArrayList<Path>();
     
                .......
     
                public void onClick(View v) {
     
                	   precedentDessin = null;
                    dessin.clear();
                    LinearLayout ll = (LinearLayout) findViewById(R.id.dessin);
                    ll.removeAllViews();
                    panel = new Panel(DessinActivity.this);
                    ll.addView(panel);
                }
    Merci d'avance pour votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    Le logcat est ton ami, tout du moins le notre si tu veux qu'on puisse t'aider

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Points : 61
    Points
    61
    Par défaut
    L'erreur est en fait dans la fonction suivante :

    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
     
     
    @Override
            public void run() {
                Canvas c;
                while (_run) {
                    c = null;
                    try {
                        c = _surfaceHolder.lockCanvas(null);
                        synchronized (_surfaceHolder) {
                            _panel.onDraw(c);
                        }
                    } finally {
                        // do this in a finally so that if an exception is thrown
                        // during the above, we don't leave the Surface in an
                        // inconsistent state if (c != null) {
                        _surfaceHolder.unlockCanvasAndPost(c);
                    }
                }
            }
    J'obtient l'exception suivante :
    java.lang.illegalArgumentException
    at android.view.Surface.unlockCanvasAndPost(Native Method)

  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
    heu... à vue de nez je dirait qu'il y a un problème de gestion de ressources...

    L'allocation de la ressource doit être faite en dehors du bloc try/finally qui lui protège le code utilisant la ressource:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    c = _surfaceHolder.lockCanvas(null);
    try {
        synchronized (_surfaceHolder) {
            _panel.onDraw(c);
        }
    } finally {
                        // do this in a finally so that if an exception is thrown
                        // during the above, we don't leave the Surface in an
                        // inconsistent state if (c != null) {
         _surfaceHolder.unlockCanvasAndPost(c);
    }
    Si le lock du canvas foire, il faut pas faire de unlockCanvasAndPost (d'autant que 'c' est sans doute null)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Points : 61
    Points
    61
    Par défaut
    Ok. merci!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Ouverture de plusieurs interfaces sur clic bouton
    Par hi2238 dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 10/04/2012, 15h38
  2. loading gif sur clic bouton submit
    Par Invité dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/05/2011, 22h12
  3. Erreur avec Call() sur clic bouton
    Par ClaireDu45 dans le forum Composants graphiques
    Réponses: 22
    Dernier message: 08/02/2011, 19h35
  4. affichage text sur clic bouton + condition
    Par gazelle dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/02/2009, 17h36
  5. Modifier requête sur clic bouton
    Par maxime350 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/04/2008, 16h59

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