2012-10-17 3 views
0

Pourquoi utiliser Button de cette façon pour initialiser.android Button:

b1 = (Bouton) findViewById (R.id.bEdit1);

Et pourquoi nous utilisons (Button) avant findViewById.

Merci

+0

d'abord apprendre Java pour jeter l'objet. – Dharmendra

Répondre

2

C'est parce que findViewById est déclarée renvoie un View. Vous devez réduire la valeur de retour pour l'affecter à une variable Button. (Je suppose à partir du code que vous avez publié que b1 est déclaré être un Button.)

Notez que si bEdit1 ne correspond pas à un Button dans la hiérarchie de vue, cela va générer un ClassCastException. Cela devrait être quelque chose que vous attrapez pendant le développement.

+0

findviewbyId provient de la classe view qui est la classe parente. et Button est une sous-classe? suis-je rite? –

+0

@lizajohn - Oui. 'findViewById' renvoie un objet qui est soit un' View' ou une sous-classe de 'View', selon la façon dont le XML est déclaré (ou comment la hiérarchie de vue a été construite). 'Button' est une sous-classe de' View'. –

+0

merci merci .... –

0

(R.id.bEdit1) est un entier qui est déclaré dans R.java Fichier de sorte que nous devons l'intégrer à Button pour obtenir la référence de celui-ci.

R.java Le fichier contient toutes les déclarations de variables d'application.

1

Les vues peuvent être associées à un identifiant entier. Ces identifiants sont généralement attribués dans les fichiers XML de mise en page et sont utilisés pour rechercher des vues spécifiques dans l'arborescence de vues. Un modèle commun est de:

Define a Button in the layout file and assign it a unique ID. 

<Button 
    android:id="@+id/bEdit1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/my_button_text"/> 

De la méthode onCreate d'une activité, trouver le bouton

 Button myButton = (Button) findViewById(R.id.bEdit1); 

Voir ID ne doivent pas être unique dans l'arbre, mais il est bon de veiller à ce qu'ils sont au moins uniques dans la partie de l'arbre que vous recherchez.

+0

merci. je l'ai –

0

Tout en travaillant avec Java nous faisons quelque chose comme ça

JButton mbutt = new JButton("Click_Me");

Dans le code ci-dessus nous sommes Creating et Assigning un objet de type JButton à Objet de référence variable de type JButton.

Alors que nous travaillons avec Android nous faisons quelque chose comme ça

Button b1 = (Button) findViewById(R.id.bEdit1);

Ici nous avons déjà créé le Button en utilisant le XML, et est maintenant se référant à cetteButton object utilisant l'instruction ci-dessus.

(Button) est un transtypage explicite fait à partir du type View type Button. Ce que nous obtenons de findViewById est une vue, maintenant nous devons mentionner spécifiquement quelle sorte de vue c'est, ici son bouton.

0

Signature du findViewById ressemble

public final View findViewById (int id) 

Quelle sera, cherchez une vue enfant avec l'identifiant donné. Si cette vue a l'ID donné, renvoyez cette vue.

final Button b1; 

findViewById (R.id.bEdit1); Maintenant, il va chercher une vue basée sur l'ID bEdit1 et vous renvoyer la vue maintenant votre travail est de le cust dans une vue appropriée. qui est comme nous le faisons comme

b1 = (Button)findViewById(R.id.bEdit1);