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 :

Visibilité ou pas d'un Layout


Sujet :

Composants graphiques Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Visibilité ou pas d'un Layout
    Bonjour, alors voilà, je début sous Android, et sous Java.
    Je cherche a modifié la visibilité d'un Layout, avec ça : Layout2.setVisibility(1);

    ok, cela ne marche pas

    Voilà le code du programme :

    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
    package com.oscar.visibility;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.Layout;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
     
    public class Projet_visibilityActivity extends Activity {
     
    	Button Button1; Button Button2;
    	Layout Layout1; Layout Layout2;
     
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            Toast .makeText(this, "Début du programme", Toast.LENGTH_SHORT) .show();
     
            Button1 = (Button)findViewById (R.id.button1);
            Button1.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
            		Layout2.setVisibility(1);
            	   	}
            });
     
            Button2 = (Button)findViewById (R.id.button2);
            Button2.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
     
            	   	}
            });
     
        }  
     
    }
    Vous avez le droit de me jeté des pierres si vous pensez que mon code "ne sens pas très bon" !!!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Normalement, les changements de visibilité se font ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    maView.setVisibility(View.VISIBLE);
    maView.setVisibility(View.INVISIBLE);
    maView.setVisibility(View.GONE);

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci, de cette reponse rapide pour un samedi soir

    Effectivement, avec quelques modification, Eclipse comprend mieux comme cela :

    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
    package com.christian.visibility;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
     
    public class Projet_visibilityActivity extends Activity {
     
    	Button Button1; Button Button2;
    	View Layout1; View Layout2;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            Toast .makeText(this, "Début du programme", Toast.LENGTH_SHORT) .show();
     
            Button1 = (Button)findViewById (R.id.button1);
            Button1.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
    				Layout2.setVisibility(View.GONE);
            	   	}
            });
     
            Button2 = (Button)findViewById (R.id.button2);
            Button2.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
     
            	   	}
            });
     
        }  // Fin de " public void onCreate(Bundle savedInstanceState) { "
     
    }
    Bon, le programme se lance bien mais plante quand on clique sur le "boutton1"

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    La variable Layout2 ne semble pas initialisée. Comme pour les boutons il faut la rattacher à un objet de Vue en faisant comme pour les boutons :

    Layout2 = findViewById(R.id.layout2);

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ok, cela fonctionne parfaitement comme ça.

    Comme je l'ai dit, je débute, et je teste des fonctions, pour voir le fonctionnement.
    Donc, ce programme ne sert à rien, mais alors a rien du tout

    Je vous mets le code pour info, si cela peut aider les "blaireaux" comme moi

    Le .java
    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
    package com.christian.visibility;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
     
    public class Projet_visibilityActivity extends Activity {
     
    	Button Button1; Button Button2;
    	View Layout1; View Layout2;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            Toast.makeText(this, "Début du programme", Toast.LENGTH_SHORT) .show();
     
            Button1 = (Button)findViewById (R.id.button1); Button2 = (Button)findViewById (R.id.button2);
            Layout1 = findViewById(R.id.Layout1); Layout2 = findViewById(R.id.Layout2);
     
            Button1.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
    				Layout1.setVisibility(View.VISIBLE);
    				Layout2.setVisibility(View.GONE);
            	}
            }); // Fin de " Button1 "
     
            Button2.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
    				Layout1.setVisibility(View.GONE);
    				Layout2.setVisibility(View.VISIBLE);
            	}
     
            }); // Fin de " Button2 "
     
        }  // Fin de " public void onCreate(Bundle savedInstanceState) { "
     
    }  // Fin de " public class Projet_visibilityActivity extends Activity { "
    et le .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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?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"
        android:orientation="vertical">
     
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello" />
     
        <LinearLayout
            android:id="@+id/Layout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:visibility="visible" >
     
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button 1" />
        </LinearLayout>
     
     
        <LinearLayout
            android:id="@+id/Layout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:visibility="visible" >
     
            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button 2" />
     
        </LinearLayout>
     
    </LinearLayout>

    Merci pour les infos et l'aide sur ce "petit" problème.
    Je reviendrais surement pour d'autre "soucis"

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/09/2013, 22h56
  2. Visibilité ou pas d'entetes colonnes
    Par Hawaisunset dans le forum BIRT
    Réponses: 3
    Dernier message: 10/04/2012, 12h07
  3. Réponses: 0
    Dernier message: 04/10/2010, 10h47
  4. Réponses: 1
    Dernier message: 26/10/2006, 17h44
  5. [layout]il existe pas des layout plus simple et plus rapide?
    Par soad dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 28/11/2005, 11h03

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