2016-04-30 7 views
1

Ma mise en page implique un grand nombre de boutons avec tous les attributs absolument identiques à l'exception de l'attribut android:text="button_name".Déclarez un attribut onClick commun pour tous les boutons dans le fichier styles.xml

Le thème de ces boutons est définit comme suit dans styles.xml

<style name="Core.ButtonStyleSmall"> 
    <item name="android:layout_width">16sp</item> 
    <item name="android:layout_height">16sp</item> 
    <item name="android:layout_marginLeft">8sp</item> 
    <item name="android:layout_marginBottom">6sp</item> 
    <item name="android:textSize">10sp</item> 
    <item name="android:onClick">takeToApplication</item> 
</style> 

Ce que je veux obtenir est une déclaration onClick commune pour tous ces boutons et donc je l'ai ajouté ici mais ne semble pas fonctionner.

Dans mon fichier java, il y a toujours un message d'avertissement indiquant Method'takeToApplication(android.view.View)' is never used.

Quelle est la bonne façon de faire cela? S'il vous plaît aidez-moi à ce sujet.

+0

Vous pouvez obtenir cela quand même. Java ne sait rien de la mise en page XML, et ne saura donc pas que votre méthode sera appelée via la réflexion. C'est simplement un avertissement. La plus grande question est la suivante: la méthode est-elle appelée lorsque l'utilisateur clique sur le bouton? 'onClick' est un attribut inhabituel à mettre dans une ressource de style, et bien que je suppose que cela devrait fonctionner, je ne serais pas choqué s'il y a des problèmes. – CommonsWare

+0

Si vous déclarez 'onClick' dans le fichier layout.xml, l'avertissement disparaît et je suppose que cela ne fonctionnera pas. Néanmoins, je vais essayer de le faire fonctionner. –

+0

Lint peut savoir vérifier les fichiers XML de mise en page pour les attributs 'onClick' et supprimer automatiquement l'avertissement. Mais il peut y avoir d'autres cas qui manquent (par exemple, vous avez eu le nom de la méthode dans une ressource de chaîne). – CommonsWare

Répondre

2

Comme personne n'a eu une réponse définitive, je vais aller de l'avant et répondre à moi-même:

Tout attribut xml peut être déclaré dans le fichier styles.xml pour toutes les vues qui ont besoin de partager des attributs communs . Ainsi, onClick fonctionne très bien lorsqu'il est déclaré ici.

Il vous donne un avertissement au préalable indiquant Method 'name_of_method' is never used, mais c'est juste parce que l'appel aux fichiers de ressources se produit à l'exécution. Ainsi, l'avertissement peut être ignoré en toute sécurité, il ne pose aucun problème.