À l'aide de Bundle pour déplacer une valeur à partir d'une activité à l'autre, mais ne peut pas les obtenir à partir sur la méthode de création?
Mes compétences java ne sont pas forts. Seulement été la programmation en elle pendant un mois ou 2, afin de pardonner à mon ahurissant.
Je suis en train de passer des valeurs entre les méthodes dans un bundle pour me permettre de charger et d'enregistrer certains paramètres du jeu, mais même si je pense que mes valeurs sont le transfert, je ne peux pas obtenir une valeur en dehors de la méthode create " pour les utiliser dans le reste de mon programme.
Je suis le chargement et le groupement de ma valeur booléenne ici (j'ai coupé beaucoup ou je l'espère chose sans pertinence) :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
vV = new VortexTouch(this);
CONTEXT = this;
//LOAD DATA
SharedPreferences settings = getSharedPreferences("GAME_DATA",MODE_PRIVATE);
_dPad = settings.getBoolean("GamePad", true);
//PASS DATA
intent = new Intent();
intent.setClass(this,VortexRenderer.class);
intent.putExtra("my_data", true); //should be _dPad but put 'true' in there for now.
startActivity(intent);
//PASS DATA END
setContentView(vV);
}
La valeur booléenne est ensuite reçu dans ma VortexRenderer classe:
public class VortexRenderer extends Activity implements GLSurfaceView.Renderer {
private static final String LOG_TAG = VortexRenderer.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
_dPad = bundle.getBoolean("my_data");
_dPad = true; //testing to see if value carries, it doesn't :-(
finish();
}
public boolean _dPad;
public void SomeGameAction(){
//try to do something with _dPad but it has not taken on a value of true. why?
}
je pense donc que la valeur de _dPad est l'obtention d'une activité à l'autre, mais ce n'est pas de sortir de la VortexRenderer 'onCrate' méthode.. il est clair que je ne suis pas à comprendre quelque chose.. quelqu'un peut-il aider? Merci.
Mon jeu a été construit autour de cet excellent tutoriel si ça peut aider (pas qu'il y ait beaucoup à gauche de l'original maintenant):
http://www.droidnova.com/android-3d-game-tutorial-part-i,312.html
Moins utile, mais si vous êtes intéressés c'est ce que j'essaye d'ajouter le code pour:
https://market.android.com/details?id=com.clockworkrobot.spacewarz
OriginalL'auteur MarbleMad | 2011-08-31
Vous devez vous connecter pour publier un commentaire.
Dans la première activité, au lieu de
utilisation
Puis dans la deuxième activité, au lieu de
utilisation
Désolé à ce sujet. J'ai raté la première partie. Vous avez besoin d'ajouter des données à un ensemble et ajouter le bundle de l'intention. Voir ma réponse mis à jour.
Le droit.. qui arrête le crash cependant, je ne suis toujours pas arriver mon _dPad variable à modifier en "vraie" suis-je une mauvaise manipulation de la variable en quelque sorte? ou est-ce que finish(); ce qui ne va pas? (sans cela, j'ai juste un écran noir). Merci pour l'aide.
L'appel de finition() va détruire l'activité, qui n'est probablement pas ce que vous voulez faire dans onCreate(). Assurez-vous que vous appelez setContentView() après super.onCreate().
OriginalL'auteur Raider
Je dois être honnête... je ne suis pas sûr de ce que vous êtes vraiment essayer de faire ici.
L'appel de la fin dans votre onCreate mettra fin à votre activité dès que vous le démarrez.
Vous ne semblent être en train de passer/recevoir des booléens avec l'intention correctement, mais ensuite coder en dur _dPad vrai que j'espère c'est juste pour le debug car il est certainement inutile de transmettre, avec l'intention.
Quel est le but de votre VortexRenderer activité? J'imagine qu'il sera un meilleur moyen d'atteindre votre objectif sans la création d'une nouvelle activité.
Je vous recommandons également d'utiliser le Journal.v(tag, message); utilitaire et logcat pour vous aider à déboguer défis.
Code de l'indentation sera aussi très certainement aider à la lisibilité du code.
éliminé de l'appel et de finition de l'ajout d'une onCreate() semblent avoir 2 copies de mon jeu de course maintenant, sans contrôle de l'inclinaison. Je vais étudier cela de plus, c'est évidemment la duplication de quelque chose à partir d'une autre classe. Oui le _dPad=true; est juste de débogage. mon VortexRenderer classe contient toute la logique du jeu et de la GL de rendu des trucs. Je vais regarder dans le Journal.v .. merci. J'ai le code des indentations, mais c'était mon premier post ici et j'ai bâclé la mise en forme un peu.
OriginalL'auteur Gregg Rivinius
La meilleure façon qui fonctionne pour moi à chaque fois que vous utilisez Global Statique de la classe afin de conserver vos données temporaires. Utiliser les setters et getters, il sera beaucoup plus facile et compréhensible.
Éviter les variables globales dans la mesure du possible. Pas thread-safe et pas des meilleures pratiques.
OriginalL'auteur Husyn