Bonjour. Je suis Wataku, un programmeur côté serveur qui étudie la programmation dans une certaine école. : détendu: Développons également Android cette fois. Le thème cette fois est * "Intention" *.
Intention explicite → Spécifiez la classe d'activité à démarrer.
Intention implicite → Spécifiez l'URI et l'action (décrites plus loin) qui indiquent le type d'activité que vous souhaitez lancer. Le système d'exploitation Android trouve et lance l'activité appropriée en fonction de l'URI et de l'action. S'il existe plusieurs destinations de lancement, le sélecteur d'application s'affiche.
Voyons maintenant comment le gérer.
Pour effectuer une transition d'écran avec une intention explicite, suivez les étapes ci-dessous. ** 1) Enregistrez l'activité dans AndroidManifest.xml **
<?xml version="1.0" encoding="utf-8"?>
<manifest ...... >
<application ........ >
<activity>
~ Activité principale ~
</activity>
<!--ajouter à-->
<activity android:name="Nom du package + nom de la classe">
</application>
</manifest>
*Si la classe d'activité se trouve directement sous le package racine, "."Nom de la classe" est OK!
** Il est pratique de créer la procédure ci-dessus à partir de "Fichier> Nouveau> Activité> Activité vide". *
** 2) Écran de démarrage ** ○ Comment démarrer un autre écran à partir de l'écran actuel. (1) Génération d'objet d'intention.
~~~~~~~~ = new Intent(le contexte,Activité lancée)
② Exécutez la méthode ** startActivity () ** avec ① comme argument.
** 3) Transmission de données ** ○ Utilisez ** putExtra ("nom", valeur) ** pour transmettre des données à l'activité de démarrage.
** 4) Recevoir des données ** ○ La méthode de réception des données dans l'activité de démarrage est la suivante. ① Objet Get Intent
Intent intent = getIntent();
② Obtenir l'objet Bundle
Bundle extra = intent.getExtra();
③ Obtenez des données en utilisant la méthode get data type de Bundle ForResult ○ Lors du traitement avec l'activité d'origine après la fin de l'activité de démarrage ** 1) La méthode suivante pour démarrer l'activité **
startActivityForResult(Objet d'intention,Code requis)
** 2) La méthode suivante juste avant la fin () de l'activité de démarrage **
setResult(Code résultat,Objet d'intention)
** Code de résultat *
** 3) Exécutez 1) et 2) et exécutez la méthode suivante dans l'activité d'origine. ** **
onActivityResult()
3 arguments
--int requestCode: 1) valeur entière spécifiée par le deuxième argument --La valeur constante spécifiée par le premier argument de int resultCode: 2)
ForResultSampleActivity.java(Source de lancement)
Intent intent = new Intent(ForResultSampleActivity.this,RatingEvaluateActivity.class);
inten1.putExtra("name", name);
startActivityForResult(intent, RATING_EVALUATE);
RatingEvaluateActivity.java(Destination de démarrage)
Intent intent = getIntent();
String name = intent.getStringExtra("name");
La procédure de lancement d'autres applications avec une intention implicite est la suivante. ** 1) Créez un objet URI. ** **
Uri uri = Uri.porse(Chaîne URI(Voir ci-dessous));
** 2) Créez un objet Intent. ** **
Intent intent = new Intent(Une constante qui représente une action.(Voir ci-dessous), uri);
** 3) Lancez l'activité. ** **
startActivity(intent) ;
URI L'URI de l'application standard Android OS est la suivante.
・ Navigateur → http: // ....., https: // ..... ・ Carte → géo: Latitude, longitude geo: o, o? g = chaîne de recherche
(Remarque) `` Les mots-clés de recherche japonais sont Encode avec URLEncoder.encode ([mot-clé], [format d'encodage (URF-8, etc.)]). ''
・ Téléphone → tel: Numéro de téléphone
Utilisez les champs constants de la classe Intent.
--ACTION_VIEW → Affichage à l'écran --ACTION_CALL → Passer un appel basé sur les données. --ACTION_DIAL → Afficher l'écran pour passer un appel --ACTION_SEND → Envoyer des e-mails / SMS
① Transition vers l'application cartographique
try {
TextView etKeyword = findViewById(R.id.etKeyword);
String keyword = etKeyword.getText().toString();
keyword = URLEncoder.encode(keyword, "utf-8");
Uri uri = Uri.parse("geo:0,0?q=" + keyword);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
} catch(UnsupportedEncodingException ex) {
Log.e("MapSearchActivity", "échec de la conversion des mots clés", ex);
}
② Transition vers le navigateur
String url = "http:://www.~~~.~~";
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
c'est tout. Si vous avez des suggestions telles que quelque chose qui ne va pas, veuillez nous contacter. Merci d'avoir lu jusqu'au bout.
Recommended Posts