83 votes

Qu'est-ce que AttributeSet et comment puis-je l'utiliser?

Qu'est-ce que AttributeSet dans Android?

Comment puis-je l'utiliser pour ma vue personnalisée?

8voto

Dave Points 572

Vous pouvez utiliser AttributeSet afin d'obtenir plus de, des valeurs personnalisées pour votre point de vue que vous définissez dans le fichier xml. Par exemple. Il y a un tutoriel sur le sujet de la Définition des Attributs Personnalisés qui stipule qu'il "est possible de lire les valeurs de la AttributeSet directement", mais il ne dit pas comment le faire. Il n'mettre en garde, cependant, que si vous n'utilisez pas de style attributs, puis:

  • Références de ressources dans les valeurs d'attribut ne sont pas résolus
  • Les Styles ne sont pas appliquées

Si vous voulez ignorer l'ensemble de style attributs chose et obtenir les attributs directement:

example.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:custom="http://www.chooseanything.org">

  <com.example.CustomTextView
    android:text="Blah blah blah"
    custom:myvalue="I like cheese"/>

</LinearLayout>

Remarque: il existe deux lignes de xmlns (xmlns = espace de noms XML), la seconde est définie comme xmlns:custom. Puis ci-dessous que la coutume:mavaleur est défini.

CustomTextView.java

public CustomTextView( Context context, AttributeSet attrs )
{
  super( context, attrs );
  String sMyValue = attrs.getAttributeValue( "http://www.chooseanything.org", "myvalue" );
  // Do something useful with sMyValue
}

6voto

Robby Pond Points 37875

AttributeSet est l'ensemble des propriétés spécifiées dans un fichier de ressources xml. Vous ne devriez rien faire de spécial dans votre vue personnalisée. Le View(Context context, AttributeSet attrs) est appelé pour initialiser une vue à partir d'un fichier de mise en page. Ajoutez simplement ce constructeur à votre vue personnalisée. Consultez l'exemple d' affichage personnalisé dans le SDK pour le voir utilisé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X