Ein Android Intent ist eine abstrakte Beschreibung einer Operation durchgeführt werden. Es kann mit verwendet werden startActivity, um eine Aktivität zu starten, broadcastIntent, um es allen interessierten BroadcastReceiver Komponenten zu senden und Startservice (Intent)oder bindService (Intent, ServiceConnection, int) mit einem Hintergrunddienst zu kommunizieren.
Die Absicht selbst, ein Intent Objekt, ist ein passiver Datenstruktur hält eine abstrakte Beschreibung einer Operation durchgeführt werden.
Zum Beispiel, nehmen wir an, dass Sie eine Aktion, die eine E-Mail-Client zu starten muss und sendet eine E-Mail mit Ihrem Android-Gerät zu haben. Zu diesem Zweck würde Ihre Aktivität ein ACTION_SEND zusammen mit den entsprechenden Nachricht chooser, auf die Android Intent Resolver. Die angegebene Auswahl gibt die richtige Schnittstelle für den Benutzer zu holen, wie Sie Ihre E-Mail-Daten zu senden.
Intent email = new Intent (Intent.ACTION_SEND, Uri.parse ("mailto:")); email.putExtra (Intent.EXTRA_EMAIL, Empfänger); email.putExtra (Intent.EXTRA_SUBJECT, subject.getText () toString ().); email.putExtra (Intent.EXTRA_TEXT, body.getText () toString ().); startActivity (Intent.createChooser (E-Mail, "Wählen Sie eine E-Mail-Client von ..."));
Obige Syntax ruft startActivity Methode, um eine E-Mail-Aktivität zu starten und Ergebnis sollte wie unten gezeigt werden
Beispielsweise wird angenommen, dass Sie eine Aktion, die URL in einem Web-Browser auf Ihrem Android-Gerät zu öffnen Bedürfnisse haben. Zu diesem Zweck werden Ihre Aktivität ACTION_WEB_SEARCH Intent mit dem Android Intent Resolver schicken, um bestimmten URL im Web-Browser zu öffnen. Die Intent Resolver analysiert durch eine Liste von Aktivitäten und wählt die am besten passen würde Ihre Absicht, in diesem Fall, den Web-Browser Activity.Die Intent Resolver läuft dann Ihre Web-Seite an den Web-Browser und startet den Web-Browser-Aktivität.
String q = "tutorialspoint"; Absicht Absicht = new Intent (Intent.ACTION_WEB_SEARCH); intent.putExtra (SearchManager.QUERY, q); startActivity (Vorsatz);
Beispiel oben wird als Such tutorialspoint auf Android Suchmaschinen und gibt das Ergebnis der tutorialspoint in Ihrem Aktivitäts
Es gibt separate Mechanismen für die Bereitstellung von Absichten, um jede Art von Bauteil - Aktivitäten, Dienste und Rundfunkempfängern.
Sr.No | Verfahren & Beschreibung |
---|---|
1 | Context.startActivity ()
Die Intent-Objekt wird an diese Methode übergeben, um eine neue Aktivität zu starten oder sich eine bestehende Aktivität, um etwas Neues zu tun.
|
2 | Context.startService ()
Die Intent-Objekt wird an diese Methode, um einen Dienst zu starten oder zu liefern neue Anweisungen zu einer laufenden Dienst übergeben.
|
3 | Context.sendBroadcast ()
Die Intent-Objekt wird an diese Methode übergeben, um die Nachricht an alle interessierten Rundfunkempfänger zu liefern.
|
Intent Objekte
Eine Intent-Objekt ist ein Bündel von Informationen, die von der Komponente, die die Absicht sowie Informationen, die die Android-System verwendet, erhält verwendet wird.
Eine Intent-Objekt kann die folgenden Komponenten auf, was sie kommuniziert oder gehen zu führen enthalten -
Handeln
Dies ist verbindlicher Teil der Intent-Objekt und ist eine Zeichenfolge, die Benennung der Aktion durchgeführt werden soll - oder, im Falle von Broadcast Absichten, die Aktion, die stattgefunden und wird ausgewiesen. Die Aktion bestimmt weitgehend, wie der Rest der Absicht Objekt strukturiert ist. Die Intent-Klasse definiert eine Reihe von Aktionskonstanten entsprechend unterschiedlichen Absichten. Hier ist eine Liste von Android Intent Standardaktionen
Die Handlung spielt in einem Intent Aufgabe kann durch die setAction () -Methode festgelegt und von getAction gelesen werden ().
Daten
Fügt eine Datenspezifikation auf ein Vorsatz-Filter. Die Spezifikation kann nur einen Datentyp (der mimetype-Attribut), nur einen URI oder beide einen Datentyp und eine URI sein. Ein URI wird durch getrennte Attribute für jedes seiner Teile festgelegt -
Diese Attribute, die das URL-Format angeben, sind optional, aber auch gegenseitig -
- Wenn ein System nicht für die Absicht Filter angegeben wird, werden alle anderen URI Attribute ignoriert.
- Wenn ein Host nicht für den Filter angegeben, werden die Port-Attribut und alle Pfadattribute ignoriert.
Die setData () Methode gibt Daten nur als URI, setType () gibt es nur als MIME-Typ und setDataAndType () gibt es sowohl als URI und ein MIME-Typ. Die URI wird von getData () gelesen und die Art von getType ().
Einige Beispiele von Maßnahmen / Datenpaare sind -
SN | Action / Daten Pair & Beschreibung |
---|---|
1 | ACTION_VIEW Inhalt: // Kontakte / Personen / 1
Zeigen Sie Informationen über die Person, deren Kennung "1" ist.
|
2 | ACTION_DIAL Inhalt: // Kontakte / Personen / 1
Zeigen Sie das Telefonwahlgerät mit der Person ausgefüllt.
|
3 | ACTION_VIEW tel: 123
Zeigen Sie das Telefonwahlgerät mit der angegebenen Nummer in gefüllt.
|
4 | ACTION_DIAL tel: 123
Zeigen Sie das Telefonwahlgerät mit der angegebenen Nummer in gefüllt.
|
5 | ACTION_EDIT Inhalt: // Kontakte / Personen / 1
Bearbeiten Sie Informationen über die Person, deren Kennung "1" ist.
|
6 | ACTION_VIEW Inhalt: // Kontakte / people /
Zeigen Sie eine Liste von Personen, die der Benutzer durch zu suchen.
|
7 | ACTION_SET_WALLPAPER
Show-Einstellungen für die Wahl Tapete
|
8 | ACTION_SYNC
Es geht um synchron die Daten ist Konstanter Wertandroid.intent.action.SYNC
|
9 | ACTION_SYSTEM_TUTORIAL
Es wird die Plattform definierten Tutorial (Standard Tutorial oder Start-up-Tutorial) starten
|
10 | ACTION_TIMEZONE_CHANGED
Es deutet an, wenn Zeitzone geändert hat
|
11 | ACTION_UNINSTALL_PACKAGE
Es wird verwendet, um Standard-Deinstallationsprogramm ausführen
|
Rubrik
Die Kategorie ist ein optionaler Teil der Intent-Objekt und es ist eine Zeichenfolge zusätzliche Informationen über die Art der Komponente, die die Absicht zu behandeln sollten enthalten. Die addCategory () Methode setzt eine Kategorie in einer Intent-Objekt, removeCategory () eine Kategorie zuvor gegeben, und getCategories (löscht) wird die Menge aller Kategorien derzeit im Objekt. Hier ist eine Liste von Android Intent Standard-Kategorien.
Sie können Einzelheiten über Intent Filter im folgenden Abschnitt zu überprüfen, um zu verstehen, wie verwenden wir Kategorien, um entsprechende Aktivität entsprechend einer Intent auszuwählen.
Extras
Dies wird in Schlüssel-Wert-Paare für zusätzliche Informationen, die zu der Komponenten-Handhabungs die Absicht abgegeben werden sollte. Die Extras können eingestellt werden und mit Hilfe der putExtras () und getExtras () Methoden ausgelesen. Hier ist eine Liste von Android Intent Standard-Extra Daten
Flags
Diese Flags sind optional Teil der Intent-Objekt und weisen Sie den Android-System, wie man eine Aktivität zu starten, und wie sie zu behandeln, nachdem es gestartet usw.
Sr.No | Flags & Beschreibung |
---|---|
1 | FLAG_ACTIVITY_CLEAR_TASK
Wenn in der Absicht, Context.startActivity (bestanden) gesetzt ist, wird dieses Flag verursachen eine bestehende Aufgabe, die mit der Tätigkeit verbunden wäre zu klären, bevor die Aktivität gestartet werden. Das heißt, die Aktivität wird die neue Wurzel einer ansonsten leeren Aufgabe, und alle alten Aktivitäten beendet sind. Dies kann nur in Verbindung mit FLAG_ACTIVITY_NEW_TASK verwendet werden.
|
2 | FLAG_ACTIVITY_CLEAR_TOP
Wenn gesetzt, und die Aktivität an den Start ist bereits in der aktuellen Task läuft, dann statt der Einführung einer neuen Instanz dieser Aktivität, werden alle anderen Aktivitäten auf es geschlossen werden, und dies Intent werden der (jetzt geliefert werden oben) alte Tätigkeit als neuer Intent.
|
3 | FLAG_ACTIVITY_NEW_TASK
Dem Benutzer eine Liste von verschiedene Dinge, die getan werden können, die sonst laufen völlig unabhängig von der Aktivität starten sie sie geben: Dieses Flag wird in der Regel durch Aktivitäten, die zu einem "launcher" style Verhalten präsentieren wollen verwendet.
|
Komponentenname
Dieses optionale Feld ist ein Android Component Objekt, das entweder, Dienstleistung oder BroadcastReceiver Klasse. Wenn es gesetzt ist, ist es die Absicht Objekt auf eine Instanz der angegebenen Klasse geliefert sonst Android nutzt andere Informationen in der Intent Aufgabe, ein geeignetes Ziel zu lokalisieren.
Der Komponentenname wird durch setComponent (), setClass () oder setClassName () durch getComponent gesetzt und gelesen ().
Arten von Intents
Es gibt folgende zwei Arten von Absichten von Android unterstützt
Explizite Intents
Explizite Absicht gehen, um innere Welt der Applikation verbunden werden, nehme an, wenn Sie eine Aktivität auf eine andere Tätigkeit zu verbinden will, können wir dieses Angebot durch ausdrückliche Absicht zu tun, Bild unten verbindet ersten Aktivität zur zweiten Aktivität, indem Sie auf drücken.
Diese Absichten bezeichnen die Zielkomponente durch seinen Namen, und sie werden in der Regel für die Anwendung-interne Nachrichten verwendet - wie zB eine Tätigkeit ausgehend eine untergeordnete Dienst oder die Einleitung einer Schwester Aktivität. Zum Beispiel -
// Explizite Intent durch die Angabe seiner Klassennamen Intent i = new Intent (FirstActivity.this, SecondAcitivity.class); // Startet TargetActivity startActivity (i);
Implizite Intents
Diese Absichten nicht nennen ein Ziel und das Feld für die Komponentenname wird leer gelassen. Implizite Hinsicht werden häufig verwendet, um Komponenten in anderen Anwendungen zu aktivieren. Zum Beispiel -
Intent READ1 = new Intent (); read1.setAction (android.content.Intent.ACTION_VIEW); read1.setData (ContactsContract.Contacts.CONTENT_URI); startActivity (READ1);
Obige Code wird Ergebnis zu liefern, wie unten gezeigt
Die Zielkomponente, die die Absicht kann der Einsatz erhält getExtras ()Methode, um die zusätzlichen Daten, die von der Quellkomponente geschickt zu bekommen. Zum Beispiel -
// Bundle-Objekt zu erhalten an geeigneter Stelle im Code Bündeln Sie Extras = getIntent () getExtras (). // Extrahieren von Daten mit übergeben Schlüssel String value1 = extras.getString ("Key1"); String value2 = extras.getString ("Key2");
Beispiel
Folgendes Beispiel zeigt die Funktionalität eines Android Intent, verschiedene Android integrierten Anwendungen zu starten.
Schritt | Bezeichnung |
---|---|
1 | Sie werden Android-Studio IDE verwenden, um ein Android-Anwendung erstellen und benennen es als meine Anwendung unter einem Paketcom.example.saira_000.myapplication. Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit bei der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden. |
2 | Ändern src / / java main / MainActivity.java Datei und fügen Sie den Code in zwei Zuhörer entspricht zwei Tasten dh definieren. Starten Sie Browser und starten Phone. |
3 | Ändern Sie das Layout XML-Datei res / layout / activity_main.xml zu drei Schaltflächen in lineare Layout hinzuzufügen. |
4 | Führen Sie die Anwendung auf Android-Emulator zu starten, und überprüfen Sie das Ergebnis der Änderungen in der Anwendung durchgeführt. |
Im Anschluss ist der Gehalt des modifizierten Haupttätigkeit Datei src / com.example.My Anwendung / MainActivity.java.
Paket com.example.saira_000.myapplication; Import android.content.Intent; Import android.net.Uri; Import android.support.v7.app.ActionBarActivity; Import android.os.Bundle; Import android.view.Menu; Import android.view.MenuItem; Import android.view.View; Import android.widget.Button;Import android. Widget. Knopf; public class MainActivity erstreckt ActionBarActivity {öffentliche Klasse MainActivity erstreckt ActionBarActivity { Button b1, b2;Button b1, b2; OverrideOverride protected void onCreate (Bundle savedInstanceState) {geschützt nichtig onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState);Super. onCreate (savedInstanceState); setContentView (R.layout.activity_main);(R. Layout. Activity_main); b1 = (Button) findViewById (R.id.button);= (Knopf) findViewById (R. Id. Taste); b1.setOnClickListener (neu View.OnClickListener () {. SetOnClickListener (neue Ansicht. OnClickListener () { OverrideOverride public void OnClick (Blick v) {öffentliche nichtig onClick (Blick v) { Intent i = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("http://www.example.com"));Intent i = neue Intent (android. Gehalt. Intent. ACTION_VIEW, Uri. Parsen ("http://www.example.com")); startActivity (i);(I); }} });}); b2 = (Button) findViewById (R.id.button2);= (Knopf) findViewById (R. Id. Button2); b2.setOnClickListener (neu View.OnClickListener () {. SetOnClickListener (neue Ansicht. OnClickListener () { OverrideOverride public void OnClick (Blick v) {öffentliche nichtig onClick (Blick v) { Intent i = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("tel: 9510300000"));Intent i = neue Intent (android. Gehalt. Intent. ACTION_VIEW, Uri. Parsen ("tel: 9510300000")); startActivity (i);(I); }} });}); }} OverrideOverride public boolean onCreateOptionsMenu (Menü-Menü) {öffentliche boolean onCreateOptionsMenu (Menü Menü) { // Pumpen Sie das Menü; dies fügt Elemente in die Aktionsleiste, wenn es vorhanden ist.// Pumpen Sie das Menü; dies fügt Elemente in die Aktionsleiste, wenn es vorhanden ist. . getMenuInflater () aufzublasen (R.menu.menu_main, Menü);. () Aufzublasen (R. Menü. Menu_main, Menü); return true;Rück wahren; }} OverrideOverride public boolean onOptionsItemSelected (MenuItem Artikel) {öffentliche boolean onOptionsItemSelected (MenuItem Artikel) { // Handle Aktionsleiste Element klickt hier. Die Aktionsleiste wird// Handle Aktionsleiste Element klickt hier. Die Aktionsleiste wird // Automatisch verarbeiten klickt auf den Home / Up-Taste, so lange,// Automatisch verarbeiten klickt auf den Home / Up-Taste, so lange, // Wie Sie eine übergeordnete Aktivität in AndroidManifest.xml angeben.// Wie Sie eine übergeordnete Aktivität in AndroidManifest.xml angeben. int id = item.getItemId ();int id = Artikel. GetItemID (); // noinspection SimplifiableIfStatement// noinspection SimplifiableIfStatement if (id == R.id.action_settings) {wenn (id == R. id. action_settings) { return true;Rück wahren; }} Rück super.onOptionsItemSelected (Artikel); Rücksuper. onOptionsItemSelected (Artikel); }} }}
Im Anschluss wird der Inhalt sein res / layout / activity_main.xml Datei -
<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: Werkzeuge = "http://schemas.android.com/tools" Android: layout_width = "match_parent" Android: layout_height = "match_parent" Android: paddingLeft = "@ dimen / activity_horizontal_margin" Android: paddingRight = "@ dimen / activity_horizontal_margin" Android: paddingTop = "@ dimen / activity_vertical_margin" Android: paddingBottom = "@ dimen / activity_vertical_margin" Werkzeuge: context = ". MainActivity"> <Textview Android: id = "@ + id / textView1" Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Intent Beispiel" Android: layout_alignParentTop = "true" Android: layout_centerHorizontal = "true" Android: textsize = "30DP" /> <Textview Android: id = "@ + id / textView2" Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Tutorials Punkt" Android: textcolor = "# ff87ff09" Android: textsize = "30DP" Android: layout_below = "@ + id / textView1" Android: layout_centerHorizontal = "true" /> <Image Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: id = "@ + id / Imagebutton" Android: src = "@ drawable / abc" Android: layout_below = "@ + id / textView2" Android: layout_centerHorizontal = "true" /> <EditText Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: id = "@ + id / Editieren" Android: layout_below = "@ + id / Imagebutton" Android: layout_alignRight = "@ + id / Imagebutton" Android: layout_alignEnd = "@ + id / Imagebutton" /> <Taste Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Start Browser" Android: id = "@ + id / Schaltfläche" Android: layout_alignTop = "@ + id / Editieren" Android: layout_alignRight = "@ + id / textView1" Android: layout_alignEnd = "@ + id / textView1" Android: layout_alignLeft = "@ + id / Imagebutton" Android: layout_alignStart = "@ + id / Imagebutton" /> <Taste Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Phone starten" Android: id = "@ + id / button2" Android: layout_below = "@ + id / Schaltfläche" Android: layout_alignLeft = "@ + id / Schaltfläche" Android: layout_alignStart = "@ + id / Schaltfläche" Android: layout_alignRight = "@ + id / textView2" Android: layout_alignEnd = "@ + id / textView2" /> </ RelativeLayout>
Im Anschluss wird der Inhalt sein res / Werte / strings.xml zwei neue Konstanten definieren -
<? xml version = "1.0" encoding = "utf-8"?> <Ressourcen> <string name = "app_name"> Mein applicaiton </ string> <string name = "action_settings"> Einstellungen </ string> </ resources>
Im Folgenden ist der Standardinhalt der AndroidManifest.xml -
<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" Paket = "com.example.My Application" Android: Versioncode = "1" Android: versionname = "1.0"> <Verwendungen-sdk Android: minSdkVersion = "8" Android: targetSdkVersion = "22" /> <application Android: allowBackup = "true" Android: icon = "@ drawable / ic_launcher" Android: label = "@ String / app_name" Android: theme = "@ style / AppTheme"> <Aktivität Android: name = "com.example.saira_000.myapplication.MainActivity" Android: label = "@ String / app_name"> <Vorsatz-Filter> <Action android: name = "android.intent.action.MAIN" /> <Kategorie android: name = "android.intent.category.LAUNCHER" /> </ intent-filter> </ Tätigkeit> </ application> </ manifest>
Lasst uns versuchen, Ihre Lauf My Application Anwendung. Ich nehme an, Sie geschaffen hatte AVD dabei Umgebungskonfiguration. Um die App vom Android Studio ausführen, öffnen Sie einen der Aktivität Dateien Ihres Projekts und klicken Sie auf Ausführen-Symbol aus der toolbar.Android Studio installiert die App auf Ihrem AVD und startet es und wenn alles in Ordnung ist mit der Einrichtung und Anwendung, wird es folgende Emulator anzuzeigen Fenster -
Klicken Sie nun auf Start-Browser-Taste, die einen Browser konfiguriert zu starten und http://www.example.com wie unten gezeigt wird -
Ähnlich können Sie Telefonschnittstelle mit Start Telefontaste, die Ihnen erlauben, schon gegeben Telefonnummer zu wählen wird gestartet.
Intent Filter
Sie haben gesehen, wie ein Intent wurde verwendet, um eine andere Tätigkeit nennen. Android OS verwendet Filter, um den Satz von Aktivitäten, Dienste und Rundfunkempfängern, die die Absichtserklärung mit Hilfe von festgelegten Reihe von Maßnahmen, Kategorien, Datenschema mit der Absicht verbunden sind verarbeiten kann lokalisieren. Sie verwenden <intent-filter> Element in der Manifest-Datei, Liste unten Aktionen, Kategorien und Datentypen mit einer Tätigkeit, Service oder Rundfunkempfänger verbunden.
Es folgt ein Beispiel eines Teils AndroidManifest.xml-Datei, um eine Aktivität angeben com.example.My Application.CustomActivity, die von einem der beiden genannten Aktionen, eine Kategorie und eine Daten aufgerufen werden kann -
<Aktivität Android: name = "CustomActivity." Android: label = "@ String / app_name"> <Vorsatz-Filter> <Action android: name = "android.intent.action.VIEW" /> <Action android: name = "com.example.My Application.LAUNCH" /> <Kategorie android: name = "android.intent.category.DEFAULT" /> <Daten Android: scheme = "http" /> </ intent-filter> </ Tätigkeit>
Sobald diese Aktivität zusammen mit oben genannten Filter definiert ist, wird anderen Aktivitäten in der Lage, diese Aktivitäten entweder mit dem Aufrufenandroid.intent.action.VIEW, oder mit Hilfe der com.example.My Application.LAUNCH Aktion bereitgestellt ihrer Kategorie ist android.intent.category.DEFAULT.
Die <data> -Element gibt den Datentyp durch die Aktivität erwartet, genannt werden und für obige Beispiel unsere eigene Aktivität erwartet, dass die Daten, die mit dem Start "http: //"
Es kann sein, eine Situation, die eine Absicht kann durch die Filter von mehr als einer Tätigkeit oder Dienstleistung übergeben, kann der Benutzer gefragt, welche Komponente zu aktivieren. Eine Ausnahme ausgelöst wird, wenn kein Ziel gefunden werden kann.
Es gibt folgende Test Android Kontrollen vor dem Aufruf eine Tätigkeit -
- Ein Filter <intent-filter> kann mehr als eine Aktionsliste wie oben gezeigt, aber diese Liste darf nicht leer sein; ein Filter muss mindestens ein <action> -Element enthalten, sonst wird es alle Absichten zu blockieren. Wenn mehr als ein Handlungen werden dann erwähnt Android versucht, eine der genannten Maßnahmen entsprechen vor dem Aufruf der Aktivität.
- Ein Filter <intent-filter> kann kein, ein oder mehrere Kategorien auflisten. wenn es keine Kategorie erwähnte dann Android immer diesen Test zu bestehen, aber wenn mehr als eine Kategorien werden dann für eine Absicht, die Kategorie Test erwähnt, muss jeder Kategorie in der Intent-Objekt eine Kategorie in der Filter entsprechen.
- Jedes Element <data> können eine URI und einen Datentyp (MIME-Medientypen) festlegen. Es gibt separate Attribute wie Schema, Host, Port und Pfad für jeden Teil der URI. Eine Intent-Objekt, das sowohl eine URI und einen Datentyp enthält, übergibt den Datentyp Teil des Tests nur, wenn der Typ entspricht einem Typ im Filter aufgelistet.
Beispiel
Folgende Beispiel ist eine Modifikation des obigen Beispiels. Hier werden wir sehen, wie Android löst Konflikte, wenn eine Absicht aufruft zwei Aktivitäten in definierten, neben, wie eine benutzerdefinierte Aktivität aufzurufen Verwendung eines Filters und dritte ist ein Ausnahmefall, wenn Android nicht Datei entsprechende Aktivität für eine Absicht definiert.
Schritt | Bezeichnung |
---|---|
1 | Sie werden Android Studio verwenden, um ein Android-Anwendung erstellen und benennen es als meine Anwendung unter einem Paketcom.example.saira_000.myapplication. Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit bei der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden. |
2 | Ändern src / main / Java / MainActivity.java Datei und fügen Sie den Code zu drei Zuhörer, die den drei Schaltflächen in Layout-Datei definiert definieren. |
3 | Fügen Sie einen neuen src / main / Java / CustomActivity.java Datei, um eine benutzerdefinierte Aktivität, die durch unterschiedliche Absichten aufgerufen wird haben. |
4 | Ändern Sie das Layout XML-Datei res / layout / activity_main.xml zu drei Schaltflächen in lineare Layout hinzuzufügen. |
5 | In einem Layout XML-Datei res / layout / custom_view.xml ein einfaches hinzufügen <Textview>, um die übergebenen Daten vorsätzlich zu zeigen. |
6 | Ändern AndroidManifest.xml <Vorsatz-Filter>, um in den Regeln für Ihre Absicht, benutzerdefinierte Aktivität aufrufen zu definieren. |
7 | Führen Sie die Anwendung auf Android-Emulator zu starten, und überprüfen Sie das Ergebnis der Änderungen in der Anwendung durchgeführt. |
Im Folgenden ist der Gehalt des modifizierten Haupttätigkeit Datei src /MainActivity.java.
Paket com.example.saira_000.myapplication; Import android.content.Intent; Import android.net.Uri; Import android.support.v7.app.ActionBarActivity; Import android.os.Bundle; Import android.view.Menu; Import android.view.MenuItem; Import android.view.View; Import android.widget.Button; public class MainActivity erstreckt ActionBarActivity { Taste b1, b2, b3; Override protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); b1 = (Button) findViewById (R.id.button); b1.setOnClickListener (neu View.OnClickListener () { Override public void OnClick (Blick v) { Intent i = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("http://www.example.com")); startActivity (i); } }); b2 = (Button) findViewById (R.id.button2); b2.setOnClickListener (neu View.OnClickListener () { Override public void OnClick (Blick v) { Intent i = new Intent ("com.example.My Application.LAUNCH", Uri.parse ("http://www.example.com")); startActivity (i); } }); b3 = (Button) findViewById (R.id.button3); b3.setOnClickListener (neu View.OnClickListener () { Override public void OnClick (Blick v) { Intent i = new Intent ("com.example.My Application.LAUNCH", Uri.parse ("https://www.example.com")); startActivity (i); } }); } Override public boolean onCreateOptionsMenu (Menü-Menü) { // Pumpen Sie das Menü; dies fügt Elemente in die Aktionsleiste, wenn es vorhanden ist. . getMenuInflater () aufzublasen (R.menu.menu_main, Menü); return true; } Override public boolean onOptionsItemSelected (MenuItem Artikel) { // Handle Aktionsleiste Element klickt hier. Die Aktionsleiste wird // Automatisch verarbeiten klickt auf den Home / Up-Taste, so lange, // Wie Sie eine übergeordnete Aktivität in AndroidManifest.xml angeben. int id = item.getItemId (); // noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } Rück super.onOptionsItemSelected (Artikel); } }
Im Folgenden ist der Gehalt des modifizierten Haupttätigkeit Datei src / com.example.My Anwendung / CustomActivity.java.
Paket com.example.saira_000.myapplication; Import android.app.Activity; Import android.net.Uri; Import android.os.Bundle; Import android.widget.TextView; public class CustomActivity erstreckt Aktivität { Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.custom_view); Textview-label = (Textview) findViewById (R.id.show_data); Uri url = getIntent () getData (). label.setText (url.toString ()); } }
Im Anschluss wird der Inhalt sein res / layout / activity_main.xml Datei -
<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: Werkzeuge = "http://schemas.android.com/tools" Android: layout_width = "match_parent" Android: layout_height = "match_parent" Android: paddingLeft = "@ dimen / activity_horizontal_margin" Android: paddingRight = "@ dimen / activity_horizontal_margin" Android: paddingTop = "@ dimen / activity_vertical_margin" Android: paddingBottom = "@ dimen / activity_vertical_margin" Werkzeuge: context = ". MainActivity"> <Textview Android: id = "@ + id / textView1" Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Intent Beispiel" Android: layout_alignParentTop = "true" Android: layout_centerHorizontal = "true" Android: textsize = "30DP" /> <Textview Android: id = "@ + id / textView2" Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Tutorials Punkt" Android: textcolor = "# ff87ff09" Android: textsize = "30DP" Android: layout_below = "@ + id / textView1" Android: layout_centerHorizontal = "true" /> <Image Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: id = "@ + id / Imagebutton" Android: src = "@ drawable / abc" Android: layout_below = "@ + id / textView2" Android: layout_centerHorizontal = "true" /> <EditText Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: id = "@ + id / Editieren" Android: layout_below = "@ + id / Imagebutton" Android: layout_alignRight = "@ + id / Imagebutton" Android: layout_alignEnd = "@ + id / Imagebutton" /> <Taste Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Starten Sie die gerade mit Blick Aktion" Android: id = "@ + id / Schaltfläche" Android: layout_alignTop = "@ + id / Editieren" Android: layout_alignRight = "@ + id / textView1" Android: layout_alignEnd = "@ + id / textView1" Android: layout_alignLeft = "@ + id / Imagebutton" Android: layout_alignStart = "@ + id / Imagebutton" /> <Taste Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Starten Sie die gerade mit Launch-Aktion" Android: id = "@ + id / button2" Android: layout_below = "@ + id / Schaltfläche" Android: layout_alignLeft = "@ + id / Schaltfläche" Android: layout_alignStart = "@ + id / Schaltfläche" Android: layout_alignRight = "@ + id / textView2" Android: layout_alignEnd = "@ + id / textView2" /> <Taste Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "außergewöhnlich guten Zustand" Android: id = "@ + id / button3" Android: layout_below = "@ + id / button2" Android: layout_alignLeft = "@ + id / button2" Android: layout_alignStart = "@ + id / button2" Android: layout_alignRight = "@ + id / textView2" Android: layout_alignEnd = "@ + id / textView2" /> </ RelativeLayout>
Im Anschluss wird der Inhalt sein res / layout / custom_view.xml Datei -
<? xml version = "1.0" encoding = "utf-8"?> <Linearlayout xmlns: android = "http://schemas.android.com/apk/res/android" Android: orientation = "vertikal" Android: layout_width = "fill_parent" Android: layout_height = "fill_parent"> <Textview Android: id = "@ + id / show_data" Android: layout_width = "fill_parent" Android: layout_height = "400dp" /> </ Linearlayout>
Im Anschluss wird der Inhalt sein res / Werte / strings.xml zwei neue Konstanten definieren -
<? xml version = "1.0" encoding = "utf-8"?> <Ressourcen> <string name = "app_name"> My Application </ string> <string name = "action_settings"> Einstellungen </ string> </ resources>
Im Folgenden ist der Standardinhalt der AndroidManifest.xml -
<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" Paket = "com.example.My Application" Android: Versioncode = "1" Android: versionname = "1.0"> <Verwendungen-sdk Android: minSdkVersion = "8" Android: targetSdkVersion = "22" /> <application Android: allowBackup = "true" Android: icon = "@ drawable / ic_launcher" Android: label = "@ String / app_name" Android: theme = "@ style / AppTheme"> <Aktivität Android: name = "com.example.saira_000.myapplication" Android: label = "@ String / app_name"> <Vorsatz-Filter> <Action android: name = "android.intent.action.MAIN" /> <Kategorie android: name = "android.intent.category.LAUNCHER" /> </ intent-filter> </ Tätigkeit> <Aktivität Android: name = "com.example.saira_000.myapplication.CustomActivity" <android: label = "@ String / app_name"> <Vorsatz-Filter> <Action android: name = "android.intent.action.VIEW" /> <Action android: name = "com.example.saira_000.myapplication.LAUNCH" /> <Kategorie android: name = "android.intent.category.DEFAULT" /> <Daten Android: scheme = "http" /> </ intent-filter> </ Tätigkeit> </ application> </ manifest>
Lasst uns versuchen, Ihre Lauf My Application Anwendung. Ich nehme an, Sie geschaffen hatte AVD dabei Umgebungskonfiguration. Um die App vom Android Studio, öffnen Sie eine Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf Ausführen-Symbol in der Symbolleiste. Android Studio installiert die App auf Ihrem AVD und startet es und wenn alles in Ordnung ist mit der Einrichtung und Anwendung, wird es folgende Emulator-Fenster anzuzeigen -
Lassen Sie uns nun mit ersten Schaltfläche "Start Browser mit Blick Aktion" zu starten. Hier haben wir unsere eigene Tätigkeit mit einem Filter "android.intent.action.VIEW" definiert, und es gibt bereits eine Standard-Aktivität gegen VIEW Maßnahmen Android definiert, startet Web-Browser, so android Displays beiden folgenden Optionen, um die Aktivität wählen wird Ihnen wollen starten.
Nun, wenn Sie wählen Sie Browser, dann wird Android Web-Browser und öffnen example.com Website zu starten, aber wenn Sie IndentDemo Option auswählen und Android wird CustomActivity die nichts tut, sondern nur zu erfassen gebenen Daten und Anzeigen in einem Textansicht wie folgt zu starten -
Jetzt gehen Sie zurück wieder mit der Taste, und klicken Sie auf "Start Browser mit Launch Action" -Button, hier Android gilt Filter zu wählen, definieren Aktivität und es einfach Ihren benutzerdefinierte Aktivität
Auch hier wieder zurück mit der Taste und klicken Sie auf "Ausnahme Bedingung" -Taste, hier Android versucht, eine gültige Filter für die gegebene Absicht herauszufinden, aber es enthält keine gültige Aktivität definiert zu finden, weil wir dieses Mal haben Daten wie verwendet https statt http aber wir geben eine richtige Aktion, so dass Android eine Ausnahme auslöst und zeigt folgenden Bildschirm -
Bereits mehrfach habe ich eure Tutorials zu sehr interessanten Themen gefunden und würde sie gern nutzen. Wie es aussieht, erklärt ihr alles auch klar und übersichtlich.
AntwortenLöschenTrotzdem nutzen mir die Tutorials nichts. Sie sind komplett unverständlich, denn das, was ihr darlegt, wird durch die wahllose schlechte Übersetzung ins Deutsche so verzerrt, das ich, obwohl ich es ernsthaft versucht habe, nichts umsetzen konnte.
Das Problem liegt dabei nicht auf den allgemeinen Erklärungen. Was mir die Nutzung so erschwert , ist vor allem, dass die Schlüsselwörter und Beispiele mit "übersetzt" wurden. Beim Programmieren sind die aber nicht Deutsch. Auch z. B. Menüpunkte findet man im Android-Studio nicht, weil sie selbstverständlich englisch sind.
Habt ihr diese Tutorials auch in Englisch? Ich würde sie wirklich gern nutzen.