Hallo. Ich bin Wataku, ein serverseitiger Programmierer, der an einer bestimmten Schule Programmieren studiert. : entspannt: Lassen Sie uns auch dieses Mal Android entwickeln. Das Thema ist diesmal * "Intent" *.
Explizite Absicht → Geben Sie die zu startende Aktivitätsklasse an.
Implizite Absicht → Geben Sie den URI und die Aktion (später beschrieben) an, die angeben, welche Art von Aktivität Sie starten möchten. Das Android-Betriebssystem findet und startet die relevante Aktivität basierend auf dem URI und der Aktion. Wenn mehrere Startziele vorhanden sind, wird die App-Auswahl angezeigt.
Nun wollen wir sehen, wie man damit umgeht.
Führen Sie die folgenden Schritte aus, um einen Bildschirmübergang mit expliziter Absicht durchzuführen. ** 1) Registrieren Sie die Aktivität in AndroidManifest.xml **
<?xml version="1.0" encoding="utf-8"?>
<manifest ...... >
<application ........ >
<activity>
~ Hauptaktivität ~
</activity>
<!--hinzufügen-->
<activity android:name="Paketname + Klassenname">
</application>
</manifest>
*Wenn sich die Aktivitätsklasse direkt unter dem Stammpaket befindet, "."Klassenname" ist OK!
** Es ist praktisch, wenn Sie das obige Verfahren unter "Datei> Neu> Aktivität> Leere Aktivität" erstellen. * *
** 2) Startbildschirm ** ○ So starten Sie einen anderen Bildschirm vom aktuellen Bildschirm aus. (1) Absichtliche Objekterzeugung.
~~~~~~~~ = new Intent(Kontext,Aktivität gestartet)
② Führen Sie die Methode ** startActivity () ** mit ① als Argument aus.
** 3) Datenübergabe ** ○ Verwenden Sie ** putExtra ("Name", Wert) **, um Daten an die Startaktivität zu übergeben.
** 4) Daten empfangen ** ○ Die Methode zum Empfangen von Daten in der Startaktivität lautet wie folgt. ① Objekt abrufen
Intent intent = getIntent();
② Bundle-Objekt abrufen
Bundle extra = intent.getExtra();
③ Abrufen von Daten mithilfe der Methode zum Abrufen des Datentyps von Bundle ForResult ○ Bei der Verarbeitung mit der ursprünglichen Aktivität nach Beendigung der Startaktivität ** 1) Die folgende Methode zum Starten der Aktivität **
startActivityForResult(Absichtsobjekt,Anfrage Code)
** 2) Die folgende Methode unmittelbar vor Beendigung () der Startaktivität **
setResult(Ergebniscode,Absichtsobjekt)
** Ergebniscode *
** 3) Führen Sie 1) und 2) aus und führen Sie die folgende Methode in der ursprünglichen Aktivität aus. ** ** **
onActivityResult()
3 Argumente
--int requestCode: 1) Ganzzahliger Wert, der durch das zweite Argument angegeben wird
ForResultSampleActivity.java(Quelle starten)
Intent intent = new Intent(ForResultSampleActivity.this,RatingEvaluateActivity.class);
inten1.putExtra("name", name);
startActivityForResult(intent, RATING_EVALUATE);
RatingEvaluateActivity.java(Startziel)
Intent intent = getIntent();
String name = intent.getStringExtra("name");
Das Verfahren zum Starten anderer Apps mit impliziter Absicht ist wie folgt. ** 1) Erstellen Sie ein URI-Objekt. ** ** **
Uri uri = Uri.porse(URI-Zeichenfolge(Siehe unten));
** 2) Erstellen Sie ein Intent-Objekt. ** ** **
Intent intent = new Intent(Eine Konstante, die eine Aktion darstellt.(Siehe unten), uri);
** 3) Starten Sie die Aktivität. ** ** **
startActivity(intent) ;
URI Der URI der Android OS-Standardanwendung lautet wie folgt.
・ Browser → http: // ....., https: // ..... ・ Karte → Geo: Breite, Länge geo: o, o? g = Suchzeichenfolge
(Hinweis)
Japanische Suchbegriffe sind Codieren Sie mit URLEncoder.encode ([Schlüsselwort], [Codierungsformat (URF-8 usw.)]).
・ Telefon → Tel: Telefonnummer
Verwenden Sie konstante Felder der Intent-Klasse.
--ACTION_VIEW → Bildschirmanzeige --ACTION_CALL → Tätigen Sie einen Anruf basierend auf den Daten. --ACTION_DIAL → Zeigen Sie den Bildschirm an, um einen Anruf zu tätigen --ACTION_SEND → Mail / SMS senden
① Übergang zur Kartenanwendung
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", "Fehler bei der Keyword-Konvertierung", ex);
}
② Übergang zum Browser
String url = "http:://www.~~~.~~";
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
das ist alles. Wenn Sie Vorschläge wie etwas falsches haben, kontaktieren Sie uns bitte. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts