1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : juin 2016
    Messages : 65
    Points : 25
    Points
    25

    Par défaut Comment avoir accès à un bouton (Button) depuis une autre activité

    Bonjour à tous,

    Je m'explique, je crée une petite application de combat très simple.
    Avant chaque combat, l'utilisateur doit réunir un certains nombre d'objet qu'il cherche (ensuite grâce à ses objets il peut débloquer un nouveau combattant parmi une liste de combattants).
    Ensuite il peut faire des combats mais avant il doit choisir son combattant et son adversaire.

    Au tout début, il n'y a seulement que 2 personnages disponibles, ensuite au fur et à mesure qu'il trouve des objets il ajoute de nouveaux personnages.

    Mon problème est le suivant:
    Lorsque l'utilisateur a réuni assez d'objets pour débloquer un personnage, j'ai donc une première activité "NewPersoActivity.java" sur laquelle il y a tous les personnages qu'il peut débloquer, un bouton pour chaque personnage (avec l'avatar du personnage en background du bouton), lorsque l'utilisateur choisit un personnage, on change d'activité, (ainsi le personnage choisit dans l'activité NewPersoActivity disparaît de la liste pour la prochaine fois (grâce à l'instruction : bouton.setVisibility(View.INVISIBLE)
    Ensuite, j'aimerais (mais je n'y arrive pas) que ce personnage soit ajouté dans mon autre activité qui est celle du choix des personnages "PersoActivity.java", dans cette activité je vous ai dit il y a au début 2 personnages débloqués d'office sous forme de bouton avec en background leur avatar, les autres personnages sont en fait cachés dans des boutons invisibles. J'aimerais que lorsque l'utilisateur débloque un nouveau personnage, le bouton de l'avatar de ce personnage puisse être visible dans cette activité.
    J'ai pensé à faire un import static du nom du bouton caché vers mon activité "NewPersoActivity",

    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
     
    import static packagenom.PersoActivity.totoPersoBtn;
     
    public class NewPersoActivity extends Activity {
     
    TextView totoTv;
    Button toto;
     
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_newperso);
     
            totoTv = (TextView) findViewById(R.id.perso1Text);
     
            toto = (Button) findViewById(R.id.perso1);
            toto.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    toto.setVisibility(View.INVISIBLE); // Le personnage choisi (le bouton) devient invisible après le choix de l'utilisateur pour la prochaine fois
                    totoTv.setVisibility(View.INVISIBLE); // Le nom du personnage devient aussi invisible
                    totoPersoBtn.setVisibility(View.VISIBLE); // Et donc ce personnage devient visible dans ma nouvelle activité grâce à l'import static (mais cela ne marche pas)
                    Intent intentToto = new Intent(NewPersoActivity.this, JouerActivity.class);
                    startActivity(intentToto);
                }
            });
    }
    }
    L'import static pointe vers un NullPointerException lorsque l'utilisateur choisi un nouveau personnage.

    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
     
    public class PersoActivity extends Activity {
     
    public static Button totoPersoBtn;
     
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_perso);
     
            totoPersoBtn = (Button) findViewById(R.id.persoToto);
     
            totoPersoBtn.setVisibility(View.INVISIBLE); // Au début ce personnage est caché
    }
    }
    En gros ça donne ce code en coupant les parties qui ne vous servent pas et en ne mettant qu'un seul personnage.

    En gros j'aimerais que lorsque l'utilisateur choisisse un nouveau personnage dans "NewPersoActivity", ce même personnage disparaisse ou plutôt devienne "INVISIBLE" dans cette même activité "NewPersoActivity" et apparaisse "VISIBLE" à la place dans la 2ème activité "PersoActivity".

    Savez vous comment je pourrais faire cela ?

    Merci à tous pour vos réponses.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : juin 2016
    Messages : 65
    Points : 25
    Points
    25

    Par défaut

    Personne n'aurait une petite idée?

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    février 2010
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : février 2010
    Messages : 2 104
    Points : 4 862
    Points
    4 862

    Par défaut

    Pour faire ce genre de chose, il vaut mieux que tu passes par de la sauvegarde.
    À minima, les SharedPreferences pourraient répondre à ton besoin : lorsque le personnage se fait débloquer, tu l'écris dans tes SharedPreferences, et pour les affichages, tu tests ces valeurs.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. Ecrire dans un champs de texte depuis une autre activité
    Par MrFullbuster dans le forum Android
    Réponses: 1
    Dernier message: 13/04/2015, 20h13
  2. effectuer une action depuis une autre activité
    Par danieldou dans le forum Android
    Réponses: 4
    Dernier message: 05/03/2014, 10h20
  3. Accès à un objet js depuis une autre jsp
    Par MAJIK_ENIS dans le forum JavaScript
    Réponses: 1
    Dernier message: 07/05/2010, 12h41
  4. Avoir accès a un bean d'une autre classe
    Par Deign dans le forum JSF
    Réponses: 6
    Dernier message: 31/07/2009, 14h56
  5. Acces a un control depuis une autre classe
    Par schnito dans le forum MFC
    Réponses: 5
    Dernier message: 25/01/2004, 23h14

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