2010-07-28 4 views
0

Mon code fonctionne et ainsi, mais je ne comprends pas une chose. J'ai commencé la programmation de jeux et travaille maintenant toute ma surface, et ainsi de suite. J'ai dessiné un fond pour que tout fonctionne. Lorsque j'ai créé ceci, j'ai suivi un tutoriel, alors sachez que je commente ma propre langue. :) Quand j'ai commencé à commenter certaines choses; Je ne peux pas m'en débarrasser, quelqu'un peut-il me dire pourquoi mon constructeur pour ma vue a le paramètre Context et le paramètre AttributeSet? Qu'est-ce qui le rend nécessaire et pourquoi ai-je besoin de définir la valeur localContext dans mon contexte GameView?Ne pas comprendre le constructeur de ma vue

Jeu

public class Game extends Activity{ 

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(new GameView(this, null)); 
} 

}

Gameview

public GameView(Context localContext, AttributeSet attrSet){ 
    super(localContext, attrSet); 
    context=localContext; 
    InitView(); 
} 

Le initView(); juste initialiser tous les objets et variables que j'ai créés; si ce truc est nécessaire pour m'expliquer le constructeur-chose; Je vais le poster.

Merci!

Répondre

3

Le contexte contient un groupe d'états avec lequel les vues fonctionnent. Cela inclut des éléments tels que l'état de configuration pour aider le système de ressources à déterminer les ressources à utiliser parmi un certain nombre d'autres. AttributeSet est utilisé lorsque votre vue est gonflée à partir d'une mise en page XML.

C'est ainsi que les attributs XML sont liés pour afficher les propriétés lors de l'inflation de la mise en page.

+0

Ditto this. Si vous voulez voir des docs Android qui parlent de cela, consultez http://d.android.com/reference/android/view/View.html#View(android.content.Context, android.util.AttributeSet) . C'est la méthode qui est appelée (éventuellement) quand vous dites 'super (localContext, attrSet)' – Hamy

+0

Merci adamp et Hamy! – Curtain

Questions connexes