2010-10-07 3 views
2

Je tente de remplacer une classe Android View pour modifier légèrement la fonctionnalité. Mais j'ai besoin de modifier un champ qui n'a pas de méthode setter. J'ai placé la sous-classe dans un package appelé android.widget. Pourquoi ne puis-je accéder à aucun des champs de package privé? Je remarque que le compilateur dit qu'ils "ne peuvent pas être résolus", plutôt que de ne pas être accessible. Cela a-t-il quelque chose à voir avec la façon dont Android.jar est construit?Pourquoi ne puis-je pas accéder aux champs private-package du package android.widget?

Répondre

4

Ces méthodes ne font pas partie du SDK Android et ne sont donc pas disponibles directement à partir d'une application SDK. Si vous construisez un firmware, vous pouvez y accéder directement. Vraisemblablement, votre sous-classe pourrait obtenir à eux via la réflexion, mais gardez à l'esprit que ces champs (ou tout autre truc non-SDK) est sujet à changement dans une version Android donnée.

2

C'est également un effet secondaire des chargeurs de classe. Votre paquet android.widget n'est pas le même paquet android.widget utilisé par le système.

Questions connexes