Accueil Finances personnelles Programmation avec Java: Quelques observations sur les Classes d'Android - mannequins

Programmation avec Java: Quelques observations sur les Classes d'Android - mannequins

Table des matières:

Vidéo: 001 — Introduction au cours 2024

Vidéo: 001 — Introduction au cours 2024
Anonim

Lorsque vous démarrez un nouveau projet Java, Android Studio vous propose de créer une activité pour votre projet. Android Studio vous propose différents types d'activités, telles qu'une activité de base, une activité vide, une activité de connexion, etc. Si vous demandez une activité vide, vous obtenez ce code:

package com. allyourcode. a10_11;

importer Android. soutien. v7. app. AppCompatActivity;

importer Android. os. Paquet;

public class MainActivity étend AppCompatActivity {

@Override

protected void surCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (disposition R., activité_main);

}

}

Le code déclare une classe nommée MainActivity . Ce nom MainActivity ne fait pas partie de la bibliothèque de l'API Android. C'est un nom que vous créez lorsque vous créez un nouveau projet Android. (En réalité, Android Studio constitue le nom.Vous acceptez le nom ou vous le changez en un autre nom lorsque vous suivez les étapes pour créer un nouveau projet.)

La classe MainActivity étend une classe qui appartient à la bibliothèque SDK d'Android, à savoir la classe AppCompatActivity . En d'autres termes, l'objet MainActivity est un objet AppCompatActivity . L'objet MainActivity possède tous les droits et responsabilités de toute instance AppCompatActivity . Par exemple, MainActivity a une méthode onCreate , qu'elle écrase.

En fait, la classe MainActivity hérite d'environ 460 lignes de code de la classe AppCompatActivity d'Android, qui hérite d'environ 1 000 lignes d'Android Classe FragmentActivity , qui hérite d'environ 6 700 lignes de la classe Activity d'Android. Les méthodes héritées incluent celles getCallingActivity , getCallingPackage , getParent , getTitle , getTitleColor , getWindow , onBackPressed , onKeyDown , onKeyLongPress , onLowMémoire , onMenuItemSelected , setTitle <, setTitleColor , startActivity , fin, et beaucoup, beaucoup d'autres. Vous héritez de toutes ces fonctionnalités avec deux mots simples: extends AppCompatActivity . Dans la terminologie des relations familiales, votre classe

MainActivity est un descendant de la classe Activité d'Android. Votre classe MainActivity est une sorte d'activité . Cette image, extraite directement de la documentation en ligne d'Android, résume ces informations sur la classe

AppCompatActivity . Un arbre généalogique AppCompatActivity.

Ajoutez cette page à vos favoris pour accéder facilement à la documentation de la bibliothèque d'API Android.

En plus d'être une sous-classe, la classe

AppCompatActivity implémente un tas d'interfaces, dont l'interface AppCompatCallback , l'interface TaskStackBuilder et d'autres. Vous n'avez pas besoin de vous en souvenir. Si vous avez besoin de le savoir, vous pouvez le rechercher sur la page de documentation d'Android. Super mot-clé de Java, revisité

Le mot

super représente le constructeur de la super-classe. Un code différent utilisait le mot-clé super de différentes manières. Oui, super a toujours quelque chose à voir avec la classe parente d'une classe. Mais, non, super ne se réfère pas toujours au constructeur de la classe parente. Dans une méthode

onCreate , l'appel super. onCreate (savedInstanceState) envoie savedInstanceState à la méthode onCreate de la classe parente . La classe parente est la classe AppCompatActivity . Java appelle donc la méthode AppCompatActivit y onCreate . La méthode

de la classe onCreat de la classe AppCompatActivity contient son propre appel à super . onCreate (savedInstanceState) . Le parent de la classe AppCompatActivity est la classe FragmentActivity . Java passe donc savedInstanceState à la méthode onCreate de la classe FragmentActivity . Etc.

Ce n'est qu'après avoir accédé à la classe Activity - l'arrière-grand-parent de votre classe M ainActivity - que le code utilise directement la variable savedInstanceState . À partir de cette information savedInstanceState , le code replace l'activité comme avant le système.

Casting, encore

Lorsque vous appelez findViewById , Java ne sait pas quel type d'affichage il trouvera. La méthode findViewById renvoie toujours une instance View , mais de nombreuses classes d'Android étendent la classe View . Par exemple, les classes Button , TextView , ImageView , CheckBox , Chronomètre et RatingBar étendent tous la classe Vue d'Android. Si vous tapez le code suivant:

// NE FAITES PAS CECI! !

TextView textView;

textView = findViewById (id de R. textView);

Java laisse échapper un rugissement retentissant: "Comment osez-vous supposer que l'objet renvoyé par un appel à findViewById fait référence à une instance de la classe TextView ! "(En réalité, Java affiche silencieusement et mécaniquement un message d'erreur Types incompatibles dans l'éditeur d'Android Studio.)

Réduire signifie essayer d'attribuer une valeur longue à une valeur > int valeur. Une valeur long a 64 bits, et une valeur int n'a que 32 bits. Donc, la tentative de rétrécissement échoue. Dans le code que vous trouvez ici, l'appel mauvais findViewById est une autre tentative de rétrécissement - assignation de la valeur View renvoyée par un appel de méthode à une variable TextView .La classe TextView est une sous-classe de la classe View , donc l'affectation échoue lamentablement. apaiser les dieux Java en ajoutant un opérateur de casting au code. Vous dites à Java de convertir tout appel sortant de l'appel de méthode

findViewById en un objet TextView . textView =

(TextView) findViewById (id de l'utilisateur textView1); Pendant que vous tapez le code, Java vous donne l'humour et dit: "Votre opérateur de casting me montre que vous êtes conscient de la différence entre un

TextView et un ancien View . Je ferai de mon mieux pour interpréter l'objet View que je trouve à l'exécution en tant qu'objet TextView . "(En fait, pendant que vous tapez le code, Java ne dit rien, le fait que Java n'affiche aucun message d'erreur lorsque vous utilisez cette astuce est un bon signe: la fonction de moulage de Java vous permet d'économiser du temps!) vous empêche de voir un message d'erreur pendant que vous développez votre code. De cette façon, le casting est une fonctionnalité assez utile de Java. Mais le casting ne peut pas vous sauver si votre code contient des erreurs d'exécution. Lorsque vous tapez

textView = (TextView) findViewById (R. id.textView1);

vous vérifiez que le nom

textView représente un widget TextView . Lorsque l'application s'exécute, Java saisit le R. id. Le widget textView de l'objet activity_main. xml fichier, et tout fonctionne très bien. Mais vous pouvez parfois oublier de vérifier votre R. java noms par rapport aux composants dans le fichier XML. Un appel à findViewById recrache de façon surprenante un composant Button lorsque votre casting dit à Java d'attendre un widget TextView . Lorsque cela se produit, Java s'étouffe sur l'opérateur de diffusion et votre application se bloque pendant son exécution. Retour à la planche à dessin!

Programmation avec Java: Quelques observations sur les Classes d'Android - mannequins

Le choix des éditeurs

Résolution des conflits de ressources humaines avec Microsoft Office Project 2007 - dummies

Résolution des conflits de ressources humaines avec Microsoft Office Project 2007 - dummies

Lorsqu'un membre de l'équipe de projet est suropposée dans votre projet Microsoft Office Project 2007, vous pouvez prendre des mesures pour corriger le problème en utilisant les suggestions suivantes. Gardez à l'esprit que les circonstances de votre projet déterminent si une solution particulière est réalisable. Par exemple, vous pouvez ajouter des ressources uniquement si votre budget le permet ...

Comment enregistrer plusieurs lignes de base dans Project 2013 - mannequins

Comment enregistrer plusieurs lignes de base dans Project 2013 - mannequins

Le concept de lignes de base multiples semble presque contraire définition d'une ligne de base. Après tout, le but d'une base de référence est de mettre l'enjeu proverbial dans le sable et de mesurer les progrès contre elle. Vous pouvez conserver plusieurs lignes de base dans Project 2013 à plusieurs fins. Considérez ces raisons: Vous avez un plan de base pour ...

Comment enregistrer une référence dans Project 2013 - mannequins

Comment enregistrer une référence dans Project 2013 - mannequins

Vous pouvez enregistrer une référence à tout moment en ouvrant la boîte de dialogue Définir la ligne de base dans Project 2013. Un paramètre - qui contrôle la manière dont le projet regroupe les données dans les tâches récapitulatives lorsque vous définissez une ligne de base pour une partie des tâches - nécessite une explication. Après avoir enregistré une base de données la première fois dans Project 2013, ...

Le choix des éditeurs

Comment classer les modèles d'analyse prédictive - mannequins

Comment classer les modèles d'analyse prédictive - mannequins

Vous avez plusieurs façons de classer les modèles utilisés pour l'analyse prédictive. En général, vous pouvez les trier en fonction des problèmes métier qu'ils résolvent et des principales fonctions métier qu'ils servent (ventes, publicité, ressources humaines ou gestion des risques, par exemple). L'implémentation mathématique utilisée dans le modèle (comme les statistiques, l'exploration de données et la machine ...

Comment appliquer n'importe quelle grappe de colonies dans l'analyse prédictive - les nuls

Comment appliquer n'importe quelle grappe de colonies dans l'analyse prédictive - les nuls

Un exemple naturel de groupe auto-organisateur vous pouvez appliquer dans le comportement d'analyse prédictive est une colonie de fourmis à la recherche de nourriture. Les fourmis optimisent collectivement leur trajectoire de manière à prendre toujours le chemin le plus court possible vers une cible alimentaire. Même si vous essayez de déranger une colonie de fourmis et de les empêcher de ...

Comment choisir un algorithme pour un modèle d'analyse prédictive - mannequins

Comment choisir un algorithme pour un modèle d'analyse prédictive - mannequins

Diverses statistiques, data-mining et des algorithmes d'apprentissage automatique sont disponibles pour votre modèle d'analyse prédictive. Vous êtes dans une meilleure position pour sélectionner un algorithme après avoir défini les objectifs de votre modèle et sélectionné les données sur lesquelles vous allez travailler. Certains de ces algorithmes ont été développés pour résoudre des problèmes métier spécifiques, améliorer des algorithmes existants ou fournir ...

Le choix des éditeurs

Excel Tableaux de bord et rapports: La fonction VLOOKUP - les nuls

Excel Tableaux de bord et rapports: La fonction VLOOKUP - les nuls

Ne vous feront rien tout bien si vous ne pouvez pas gérer efficacement vos modèles de données. La fonction VLOOKUP est le roi de toutes les fonctions de recherche dans Excel. Le but de VLOOKUP est de trouver une valeur spécifique à partir d'une colonne de données où la valeur de ligne la plus à gauche correspond à un critère donné. Prenez ...

Excel Outils d'analyse de données - dummies

Excel Outils d'analyse de données - dummies

L'outil d'analyse d'excel est un complément utile qui fournit un ensemble complet d'outils d'analyse statistique . Voici quelques outils dans le ToolPak. Outil Analyse Anova: Facteur unique Analyse de variance pour deux échantillons ou plus Anova: Facteur double avec réplication Analyse de la variance avec deux variables indépendantes et observations multiples ...

Excelent Touches de raccourci d'entrée de données - mannequins

Excelent Touches de raccourci d'entrée de données - mannequins

Lorsque vous travaillez dans Excel et saisissez des données dans une cellule, il est essentiel pour compléter l'entrée soit en cliquant sur une autre cellule avec le pointeur de la souris ou en utilisant l'une des touches de raccourci pratiques montrées ici pour déplacer le curseur de la cellule: Appuyez sur les touches To Arrow (& uarr;, & darr; move ...