Accueil Médias sociaux Code couramment utilisé dans Android Application Development - dummies

Code couramment utilisé dans Android Application Development - dummies

Table des matières:

Vidéo: Fun with ArrayMaps (Android Performance Patterns Season 3 ep1) 2025

Vidéo: Fun with ArrayMaps (Android Performance Patterns Season 3 ep1) 2025
Anonim

" Mon application nécessite un récepteur de diffusion. Quelqu'un peut-il me rappeler comment je peux coder un récepteur de radiodiffusion? Et pendant que vous y êtes, comment une activité retourne-t-elle un résultat? Oh, diable. Où puis-je trouver tout ça rapidement? "

Avoir des exemples de types de code utilisés dans le développement d'applications Android à portée de main peut être d'une grande aide. Vous trouverez beaucoup d'exemples ici.

Activités

Voici une activité qui commence une autre activité:

public class CheatSheetActivity extends Implémentation d'implements OnClickListener {Button button1; static final String MY_ACTION = "com.allmycode.action"; static final String MY_URI = "mon_schéma: mon_scheme_specific_part"; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R disposition.principale); button1 = (Bouton) findViewById (R, id, bouton1); button1. setOnClickListener (this);} public void onClick (Voir arg0) {Intention intention = new Intent (); intention. setAction (MY_ACTION); intention. setData (Uri, parse (MY_URI)); startActivity (intention);}}

Et n'oubliez pas: lorsque vous créez une nouvelle classe d'activité, vous devez ajouter un élément correspondant à votre AndroidManifest. fichier xml. Le filtre d'intention de l'élément OtherActivity ressemble à ceci:


Pour obtenir le résultat d'une activité, ajoutez le code suivant (ou quelque chose qui lui ressemble) à votre application:

final int CODE_NUMBER = 42; final String CLASSNAME = "CheatSheetActivity"; public void onClick (Voir arg0) {Intention intention = new Intent (); intention. setAction (MY_ACTION); intention. setData (Uri, parse (MY_URI)); startActivityForResult (intention, CODE_NUMBER);} void protégé onActivityResult (int codeNuméro, int resultCode, intention d'intention) {if (resultCode == RESULT_OK) {if (codeNumber == CODE_NUMBER) {Log. i (CLASSNAME, intention. getData (). getSchemeSpecificPart ());}}}

Et dans l'activité qui crée le résultat, ajoutez le code du type suivant:

Intention intention = new Intention (); intention. setData (Uri.parse ("résultat: bonjour")); setResult (RESULT_OK, intention); terminer();

Services

Un service effectue généralement son travail sans déranger (ni même informer) l'utilisateur. Par exemple, un service de cours boursier peut atteindre le Web et obtenir les derniers prix des choix favoris de l'utilisateur. L'activité d'une autre application peut obtenir des données du service et afficher les données sur l'écran de l'appareil.

Le code suivant est un service météo complet (mais pas très précis):

public class MyWeatherService extends Service {Messenger messengerToClient = null; MyIncomingHandler myIncomingHandler = new MyIncomingHandler (); Messenger messengerToService = nouveau Messenger (myIncomingHandler); @Override public IBinder onBind (intention intentionnelle) {return messengerToService.getBinder ();} classe MyIncomingHandler extends Gestionnaire {@Override public void handleMessage (message incomingMessage) {messengerToClient = incomingMessage. répondre à; Bundle réponse = new Bundle (); répondre. putString ("météo", "Il fait noir la nuit."); Message replyMessage = Message. obtenir(); message de réponse. setData (réponse); essayez {messengerToClient. send (replyMessage);} catch (RemoteException e) {e. printStackTrace ();}}}}

Dans un autre paquet, vous mettez le code pour appeler le service météo. Voici un exemple de code:

public class ServiceConsumerActivity extends Implémentation implémente OnClickListener {Messenger messengerToService = null; MyIncomingHandler myIncomingHandler = new MyIncomingHandler (); Messenger messengerFromService = nouveau Messenger (myIncomingHandler); Connexion ServiceConnection = new MyServiceConnection (); SharedPreferences prefs; boolean isBound = faux; void bind () {Intention intention = new Intent (); intention. setAction ("com.allmycode.Météo"); isBound = bindService (intention, connexion, contexte BIND_AUTO_CREATE);} void public queryService () {if (isBound) {Bundle bundle = nouvel ensemble (); paquet. putString ("emplacement", "Philadelphia"); Message message = Message. obtenir(); message. replyTo = messengerFromService; message. setData (bundle); essayez {messengerToService. send (message);} catch (RemoteException e) {e. printStackTrace ();}} else {textView1. setText (R chaîne.numéro_service);}} class MyIncomingHandler extends Handler {@Overide public void handleMessage (message msg) {Bundle bundle = msg. getData (); textView1. setText (bundle.getString ("météo"));}} void unbind () {if (isBound) {unbindService (connexion); isBound = false;}} classe MyServiceConnection implémente ServiceConnection {public void onServiceConnected (nomClassName className, classeur IBinder) {messengerToService = nouveau Messenger (classeur);} public void onServiceDisconnected (nom_composant n) {messengerToService = null;}} // I don ' t incluez la méthode onCreate ou la méthode // onClick dans cet exemple.}

Bien sûr, aucune application ne survit sans certains éléments dans le fichier manifeste. Pour enregistrer le service de cette section, vous avez besoin d'un élément du type suivant:



Récepteurs de diffusion

Lorsque vous diffusez une émission, vous lancez une intention dans la nature. Les récepteurs de diffusion avec des filtres d'intention compatibles se réveillent et font quelque chose d'utile avec les informations diffusées. (Après avoir fait quelque chose avec les informations de diffusion, le récepteur se rendormit Dans ma prochaine incarnation, je veux être un récepteur de diffusion.)

Pour créer votre propre récepteur de diffusion, vous étendez la classe BroadcastReceiver d'Android et vous déclarez un onReceive méthode. Par exemple, le code suivant répond aux diffusions correspondantes:

Une autre application crée une diffusion avec du code du type suivant:

Intention intention = new Intention (); intention. setAction ("com.allmycode.Action"); sendBroadcast (intention);

Vous pouvez enregistrer un récepteur de diffusion dans votre AndroidManifest.Fichier xml:

Pour plus de flexibilité, vous pouvez enregistrer un récepteur dans votre code Java. Le code Java suivant fait essentiellement ce que l'élément dans un AndroidManifest. Le fichier xml fait:


Filtre IntentFilter = new IntentFilter (); filtre. addAction ("com.allmycode.Action"); registerReceiver (nouveau MyReceiver (), filtre);

Fournisseurs de contenu

Le fournisseur de contenu d'une application met les données à la disposition d'autres applications exécutées sur le même appareil. L'interface du fournisseur ressemble à l'interface d'une base de données, avec des tables, des lignes, des curseurs et tout ce qu'il y a de mieux. Par exemple, le code pour interroger un fournisseur de contenu ressemble à ceci:

public Cursor query (Uri uri, Chaînes [] colonnes, String whereClause, Chaîne [] whereArgs, Chaîne sortOrder) {Curseur cursor = null; code int = uriMatcher. match (uri); if (code == 1) {curseur = db. query (SIMPLETABLE, colonnes, whereClause, whereArgs, null, null, sortOrder);} else if (code == 2) {String [] columnNames = {"_id", "nom", "montant"}; String [] rowValues ​​= {"Table", "4", "2"}; MatrixCursor matrixCursor = nouveau MatrixCursor (columnNames); matrixCursor. addRow (rowValues); cursor = matrixCursor;} return cursor;}

Fragments

Un fragment

est comme une vue - une chose visible que vous pouvez afficher dans une activité. Mais contrairement à une vue, un fragment a ses propres méthodes de cycle de vie. Ainsi, Android peut créer une petite pile de fragments à l'intérieur d'une activité. Lorsque l'utilisateur appuie sur le bouton Retour, Android supprime un fragment de la pile. (S'il n'y a aucun fragment à faire apparaître, Android supprime toute l'activité de la pile des tâches.) Vous pouvez placer un fragment dans la disposition de trame suivante: Pour mettre un fragment dans la mise en page,. Voici à quoi ressemble une transaction de fragment:

DocsFragment docsFragment = DocsFragment. newInstance (index); FragmentManager fragmentManager = getFragmentManager (); FragmentTransaction fragmentTransaction = fragmentManager. beginTransaction (); fragmentTransaction. remplacer (D. id docs, docsFragment); fragmentTransaction. addToBackStack (null); fragmentTransaction. commettre();


Intentions et filtres d'intention

Lorsqu'une intention correspond au bon filtre d'intention, le résultat est une correspondance au ciel. Mais les règles pour faire correspondre les intentions avec les filtres sont compliquées. Les règles se lisent comme les clauses légales d'un contrat prénuptial.

Vous pouvez utiliser des méthodes Java pour décrire une intention. Voici quelques méthodes souvent utilisées:

setAction:

Définit l'action de l'intention. (Une intention peut avoir une seule action.)

  • addCategory: Ajoute une catégorie à l'intention. (Une intention peut avoir plusieurs catégories.)

  • setData: Définit l'URI de l'intention et supprime le type MIME de l'intention (si l'intention a un type MIME).

  • setType: Définit le type MIME de l'intention et supprime l'URI de l'intention (si l'intention a un URI).

  • setDataAndType: Définit à la fois l'URI de l'intention et le type MIME de l'intention. Selon les docs, "cette méthode devrait très rarement être utilisée. "

  • Vous pouvez également utiliser un code XML pour décrire une intention. Dans l'URI // www.allmycode. com: 80 / Android, le régime est http, l'hôte est www. allmycode. com, le port est de 80, et le chemin est Android. L'autorité (qui n'est pas l'un des attributs d'un élément, mais qui est utile à connaître) est www. allmycode. com: 80.

Vous définissez généralement les valeurs d'un filtre d'intention dans AndroidManifest. fichier xml. Mais dans le code Java, l'android. contenu. La classe IntentFilter a beaucoup de méthodes utiles. Voici quelques-uns d'entre eux:


addAction:

Ajoute une action au filtre.

  • addCategory: Ajoute une catégorie au filtre.

  • addDataScheme: Ajoute un schéma au filtre.

  • addDataAuthority: Ajoute une autorité au filtre.

  • addDataPath: Ajoute un chemin au filtre.

  • addDataType: Ajoute un type MIME au filtre.

  • Un filtre d'intention peut comporter plusieurs actions, plusieurs catégories, etc. Voici une brève liste d'exigences pour une correspondance entre un filtre d'intention et un filtre d'intention. Cette liste n'est pas complète, donc, si vous voulez une liste complète, vous devriez acheter

Développement d'applications Android All-in-One For Dummies

par Barry Burd. Si une intention a une action, afin de correspondre à l'intention, un filtre d'intention doit avoir une action identique. Le filtre d'intention peut avoir des actions supplémentaires. Aucune de ces actions supplémentaires n'a aucun effet sur la correspondance. Si une intention a des catégories, afin de correspondre à l'intention, un filtre d'intention doit avoir ces catégories (et peut-être plus).

  • Si une intention a un type MIME, afin de correspondre à l'intention, un filtre d'intention doit avoir un type MIME correspondant. Le filtre d'intention peut avoir des types MIME supplémentaires. Aucun de ces types MIME supplémentaires n'a aucun effet sur la correspondance.

  • Si un filtre d'intention a des types MIME, afin de correspondre au filtre d'intention, une intention doit avoir un type MIME et le type MIME de l'intention doit correspondre à l'un des types MIME du filtre.

  • Dans une certaine mesure, la correspondance des types MIME peut impliquer des caractères génériques et des expressions régulières.

  • Si une intention a un schéma d'URI, afin de correspondre à l'intention, un filtre d'intention doit avoir un schéma d'URI correspondant.

  • Si un filtre d'intention a des schémas d'URI, afin de correspondre au filtre d'intention, une intention doit avoir un schéma d'URI et le schéma d'URI de l'intention doit correspondre à l'un des schémas d'URI du filtre.

  • Pour terminer cette liste, copiez les deux dernières règles, en changeant un ou deux mots dans chacune des copies:

  • Si une intention a un URI

host

  • , pour correspondre à intention, un filtre d'intention doit avoir un URI hôte correspondant. Si un filtre d'intention a URI hosts

  • , pour correspondre au filtre d'intention, une intention doit avoir un URI host et l'URI de l'intention < doit correspondre à l'un des URI host s du filtre. Si une intention a un URI port ,

  • pour correspondre à l'intention, un filtre d'intention doit avoir un URI port correspondant. Si un filtre d'intention a URI ports ,

  • pour correspondre au filtre d'intention, une intention doit avoir un port URI et le port URI de l'intention < doit correspondre à l'un des URI du filtre t s du filtre. Si une intention a un

  • correspondant . Si un filtre d'intention possède des chemins URI , pour correspondre au filtre d'intention, une intention doit avoir un chemin URI

  • et le chemin URI de l'intention

Code couramment utilisé dans Android Application Development - dummies

Le choix des éditeurs

Spotify Mobile Service avec un compte Premium - Les nuls

Spotify Mobile Service avec un compte Premium - Les nuls

Les deux principaux avantages des abonnés Spotify Premium sur Spotify Free ou Les détenteurs d'un compte illimité ont la capacité d'accéder au catalogue de diffusion en continu de Spotify via un appareil mobile et d'écouter des pistes en mode hors connexion à l'aide de votre application mobile ou informatique. Ce sont les deux caractéristiques qui justifient le fait que Spotify ...

Spotify Listes de lecture de Mobile - mannequins

Spotify Listes de lecture de Mobile - mannequins

Comme sur votre ordinateur, vous pouvez gérer les listes de lecture Spotify sur votre téléphone. Toute modification apportée à votre liste de lecture est synchronisée sur tous les appareils auxquels vous êtes connecté, en temps réel. Lorsque vous démarrez l'application Spotify, toutes vos playlists sont affichées immédiatement, mais vous pouvez y accéder à tout moment en appuyant sur ...

Spotify vous permet de vous lier à peu près n'importe quoi - les tuls

Spotify vous permet de vous lier à peu près n'importe quoi - les tuls

Spotify vous permet de copier des liens Web et des URI vous pouvez coller où vous voulez: dans les blogs, les e-mails, les réseaux sociaux, même les documents de traitement de texte. Cliquez avec le bouton droit de la souris sur ce que vous voulez partager et choisissez une option de copie dans le menu contextuel qui s'affiche généralement. Dans certains cas, si vous savez comment un lien est construit, ...

Le choix des éditeurs

Médias sociaux et marketing par e-mail - nuls

Médias sociaux et marketing par e-mail - nuls

Réseaux sociaux clients potentiels via des sites Web et des e-mails. Rappelez-vous, la suppression des e-mails pour gagner du temps est le mode opératoire pour les gens connectés en ligne dans les affaires ces jours-ci. Certaines entreprises estiment avoir le droit d'envoyer des offres quotidiennes et des promotions accompagnées de fanfares. Est-il même possible pour une entreprise de ...

Social Media Commerce: Enregistrement client par Mobile App - dummies

Social Media Commerce: Enregistrement client par Mobile App - dummies

Certains médias sociaux Les applications récompensent leurs utilisateurs pour l'enregistrement depuis les smartphones au fur et à mesure qu'ils passent d'un endroit à un autre dans le monde des briques et du mortier. Cette activité d'enregistrement mobile est populaire auprès de ceux qui se connectent en ligne. Vous pouvez encourager les gens à se présenter à votre lieu de travail. Le leader actuel sur le marché est Foursquare, un ...

Social Media Commerce: Blog pour votre entreprise - dummies

Social Media Commerce: Blog pour votre entreprise - dummies

Quand vous vous sentez prêt Pour passer à l'étape suivante dans le commerce des médias sociaux et faire quelque chose au-delà d'un site Web d'entreprise, vous pouvez développer un blog pour communiquer avec les clients. Les blogs offrent un espace à votre entreprise pour améliorer son message et répondre aux commentaires des lecteurs. Un blog (à partir du web-journal) peut ...

Le choix des éditeurs

Comment traduire votre réseau Ning en une langue non prise en charge - les nuls

Comment traduire votre réseau Ning en une langue non prise en charge - les nuls

Bien que Ning supporte 18 langues , avec autant de langues dans le monde, vous devrez peut-être traduire votre réseau en un réseau que Ning ne prend pas en charge. Créer une nouvelle traduction:

Comment syndiquer le contenu de votre réseau Ning - des nuls

Comment syndiquer le contenu de votre réseau Ning - des nuls

Votre réseau Ning vous offre de nombreuses façons d'utiliser Flux RSS pour syndiquer le contenu que vous et vos membres contribuent au réseau. Si les titres des éléments des flux RSS de votre réseau sont suffisamment informatifs et convaincants, les internautes qui visitent d'autres sites Web qui affichent le flux RSS de votre réseau peuvent cliquer sur les titres ...

Comment utiliser le mur de commentaires de Ning - mannequins

Comment utiliser le mur de commentaires de Ning - mannequins

Votre page de profil Ning a un mur de commentaires, où autre Les membres de Ning peuvent vous laisser des messages. Le mur de commentaires permet aux membres de vous écrire quelque chose, d'inclure un lien vers un autre site Web, d'intégrer de la vidéo à partir du réseau ou d'autres sites, ou de poster une photo pour que vous puissiez la consulter. N'importe qui dans le réseau peut partir ...