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",
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
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); } }); } }
En gros ça donne ce code en coupant les parties qui ne vous servent pas et en ne mettant qu'un seul 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 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.
Partager