2010-08-18 6 views
0

Je pense que cela devrait être une question relativement facile de répondre, mais je suis tout nouveau pour le développement android et donc pas sûr où d'autre à tourner.android UI - ajouter une nouvelle classe

J'ai une mise en page simple (relative actuellement) pour mon activité principale. Je veux créer un objet (une carte pour un jeu de cartes) qui aura toutes les propriétés nécessaires pour cette carte (valeur, costume, etc). J'ai des images pour toutes ces cartes dans mon dossier drawable. Par souci de test, j'ai créé un fichier card.xml dans mon dossier de mise en page et "en dur" en arrière-plan pour une carte. Ma question est, maintenant que j'ai un fichier xml avec la mise en page pour ma carte, comment dois-je le brancher dans un objet qui contient des informations sur cette carte, puis comment puis-je tirer cet objet sur ma scène principale? Dois-je créer l'objet carte comme une autre activité et utiliser setContentView() pour référencer le fichier card.xml dans le dossier layout? Comme je l'ai dit, je ne fais que commencer le développement Android et je ne suis pas tout à fait sûr du fonctionnement des activités. En supposant que c'est la bonne méthode, comment puis-je tirer cette deuxième activité sur ma scène principale?

TIA

+0

Ce n'est pas tout à fait clair pour moi quel est votre objectif ici, du point de vue de l'assurance-chômage. Voulez-vous ajouter la carte à votre activité actuelle? Voulez-vous que ce soit un popup comme un dialogue? Ou voulez-vous qu'il occupe tout l'écran d'une nouvelle activité? –

+0

@Daniel Lew: merci pour la réponse rapide. Fondamentalement, je veux juste créer un objet carte que je peux mettre sur mon activité principale ... Je ne veux pas qu'il remplisse tout l'écran. En fin de compte, le jeu de cartes que j'écris aura 12 cartes par joueur, donc je devrais pouvoir les intégrer toutes dans l'activité principale. Je devine où je suis confus est comment créer chaque carte comme objet séparé, puis les ajouter dynamiquement à mon activité principale. Juste basé sur votre réponse, il semble que les créer comme des activités séparées n'est pas la voie à suivre ... suis-je au moins sur la bonne voie avec la création d'une carte.xml dans la mise en page? – Kyle

Répondre

0

Bienvenue à la programmation Android! Ce que vous devez faire est de créer un composant personnalisé en créant une nouvelle classe qui étend une vue (comme View ou votre élément racine dans card.xml) et le configurer pour utiliser votre fichier xml. Vous pouvez trouver un guide ici: http://developer.android.com/guide/topics/ui/custom-components.html

Dans ce composant personnalisé, vous pourrez enregistrer tout ce dont vous avez besoin. Pour utiliser votre composant, il suffit de l'utiliser dans un fichier xml comme vous le feriez avec un bouton ou un textview, vous pouvez trouver comment dans le lien que j'ai posté.

+0

Cela semble prometteur. J'ai relu le lien, quoique brièvement, et j'ai décidé d'étendre ImageView car cela semble le plus logique (la carte est essentiellement une image). Eclipse me dit que j'ai besoin d'un constructeur qui prend un argument (Context). Désolé pour mon nouvel ange, mais qu'est-ce que le contexte fait exactement? Et comment puis-je insérer dans mon fichier card.xml pour mettre en forme l'image dans la classe? – Kyle

+0

Vous pouvez utiliser votre fichier xml en le gonflant dans la méthode onFinishInflate(). ((Activité) getContext()). GetLayoutInflater(). Gonfle (R.layout.card, this); Voici un autre petit guide pour cela: http://maohao.wordpress.com/2009/08/27/building-mix-up-custom-component-android/ Expliquer ce qu'est le contexte et pourquoi il y en a difficile pour moi, essayez google. – softarn

+0

ok une autre question rapide. J'ai créé une classe qui étend ImageView appelé Card. Lorsque j'essaie de mettre une référence à cette nouvelle classe dans mon fichier main.xml, elle ne sera pas compilée. Si je le change en ImageView cependant, il se compile bien. Que dois-je faire dans ma classe Card pour l'exposer au mail.xml (activité principale)? – Kyle

Questions connexes