English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Vier verschiedene Schreibweisen für die Eventverarbeitung von Activity-Übergängen in Android

Konkretes Implementierungscode:

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
// Methode1verwendet eine Klasse, die das OnClickListener-Interface implementiert 
((Button) findViewById(R.id.btn1); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity1); 
startActivity(intent); 
} 
}); 
// Methode2verwendet eine anonyme Innere Klasse 
((Button) findViewById(R.id.btn2); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity2); 
startActivity(intent); 
} 
}); 
// Methode3. Activity direkt das OnClickListener-Interface implementiert 
((Button) findViewById(R.id.btn3); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity3); 
MainActivity.this.startActivity(intent); 
} 
}); 
// Methode4.mit dem Label direkt den Auslöseereignis markiert 
((Button) findViewById(R.id.btn4); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity4); 
MainActivity.this.startActivity(intent); 
} 
}); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Das Menü einblenden; dies fügt Elemente zur Aktionsleiste hinzu, falls diese vorhanden ist. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Verarbeiten Sie hier Klicks auf die Aktionsleiste. Die Aktionsleiste wird 
// klicks auf das Home-Feld automatisch verarbeiten/Hauptknopf, so lange 
// wie Sie in AndroidManifest.xml eine übergeordnete Activity angeben. 
int id = item.getItemId(); 
if (id == R.id.action_settings) { 
return true; 
} 
return super.onOptionsItemSelected(item); 
}

上面的代码中:

1我们的MainActivity类需要继承自Activity

2、Es muss die onCreate-Methode überschrieben und das entsprechende Layout (Layout) durch setContentView-Verfahren geladen werden.

3、Durch das findViewById-Verfahren können die entsprechenden Steuerelemente (in der Layout-Datei definierte Steuerelemente) gefunden und ein Click-Ereignis gebunden werden (in Java durch Listener, in C# durch Delegation)

4、Daten können durch ein Intent-Objekt übertragen und auf andere Activitys gejumped werden.

5、onCreateOptionsMenu und onOptionsItemSelected sind Methoden zum Hinzufügen und Auswählen von Menüelementen.

Hier sind die Inhalte der vier Activitys getrennt voneinander:

Erstes:

public class ButtonActivity1 extends Activity { 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button1); 
button = (Button) findViewById(R.id.btn1); 
button.setOnClickListener(new MyListener()); 
} 
public class MyListener implements OnClickListener { 
@Override 
public void onClick(View v) { 
Toast.makeText(ButtonActivity1.this, "Dies ist die erste Methode der Ereignisbeschreibung, Definition des Ereignisses durch Innere Klasse", 2000).show(); 
} 
} 
}

Zweites:

public class ButtonActivity2 extends Activity { 
Button button ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button2); 
button = (Button)findViewById(R.id.btn1); 
button.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Toast.makeText(ButtonActivity2.this, "Dies ist die zweite Methode der Ereignisbeschreibung, Form der anonymen Inneren Klasse", 2000).show(); 
} 
}); 
} 
}

Drittes:

public class ButtonActivity3 extends Activity implements OnClickListener { 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button3); 
button= (Button)findViewById(R.id.btn1); 
button.setOnClickListener(this); 
} 
@Override 
public void onClick(View v) { 
switch (v.getId()) { 
case R.id.btn1: 
Toast.makeText(ButtonActivity3.this, 
"Dies ist die dritte Methode der Ereignisbeschreibung, direkte Implementierung der OnClick-Methode des OnClickListener-Interfaces", 2000).show(); 
break; 
default: 
Toast.makeText(ButtonActivity3.this, "kein Trigger", 2000).show(); 
break; 
} 
} 
}

Viertes:

Es muss im Layout-Datei-XML-Datei "btnClickEvent"-Methode angegeben werden.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.example.test.Button"4Activity" > 
<Button 
android:id="@"+id/btn4" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="Klicken Sie auf mich" 
android:onClick="btnClickEvent"/> 
</LinearLayout> 
public class ButtonActivity4 extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button4); 
} 
public void btnClickEvent(View v){ 
Toast.makeText(ButtonActivity4.this, "Das ist die vierte Methode zur Ereignisbehandlung, indem der Click-Event direkt im Button-Tag des Layouts gebunden wird", 2000).show(); 
} 
}

Oben genannten4Diese Schreibweise enthält die3Diese Methode wird relativ häufig verwendet. Wenn in einer Activity mehrere Buttons den Click-Event auslösen müssen, wird durch die3Diese Schreibweise ist einfacher zu verwalten und zu warten, wenn es um die Button-Event-Code geht.

Das Layout ist ein sehr wichtiges Thema, das ich in einem Blogbeitrag weiter erläutern werde. Hier werde ich nur kurz darauf eingehen.

Wir verwenden LinearLayout (lineare Anordnung, andere Optionen sind Relative Layout, Absolute Layout usw.), und haben die Eigenschaft Android:orientation auf vertical (vertikal) gesetzt. Die Steuerelemente werden von oben nach unten angezeigt.

Andere3Es gibt mehrere Layout-Dateien, die den gleichen Inhalt haben, und alle enthalten nur einen Button.

Die Konfiguration von activity_main.xml ist wie folgt (es wurde einfach ein Button platziert):4ein Button):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.test.MainActivity" > 
<Button 
android:id="@"+id/btn1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe1" /> 
<Button 
android:id="@"+id/btn2" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe2" /> 
<Button 
android:id="@"+id/btn3" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe3" /> 
<Button 
android:id="@"+id/btn4" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe4" 
android:onClick="btnClickEvent"/> 
</LinearLayout>

Der wichtigste Schritt ist es, im AndroidManifest.xml die registrierte Activity zu konfigurieren. Die vollständige Konfiguration lautet wie folgt:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.test" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk 
android:minSdkVersion="14" 
android:targetSdkVersion="14" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<application 
android:allowBackup="true" 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" 
android:theme="@style/AppTheme" > 
<activity 
android:name=".MainActivity" 
android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity> 
<activity 
android:name=".ButtonActivity"1" 
android:label="@string/button1" /> 
<activity 
android:name=".ButtonActivity"2" 
android:label="@string/button2" /> 
<activity 
android:name=".ButtonActivity"3" 
android:label="@string/button3" /> 
<activity 
android:name=".ButtonActivity"4" 
android:label="@string/button4" /> 
</application> 
</manifest>

Dabei gibt es einen zu beachtenden Punkt,

<action android:name="android.intent.action.MAIN" />

Stellen Sie MainActivity als "Hauptactivity" ein, d.h. diejenige Activity, die beim Start zuerst angezeigt wird.

Die folgenden mehreren Activities müssen im "Verzeichnis" registriert werden, damit das Programm diese Activities finden kann.

strings.xml Datei-Konfigurationsinhalte:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string name="app_name">test</string> 
<string name="hello_world">Hallo Welt!/string> 
<string name="action_settings">Einstellungen</string> 
<string name="clickMe1">Knopfereignis1</string> 
<string name="clickMe2">Knopfereignis2</string> 
<string name="clickMe3">Knopfereignis3</string> 
<string name="clickMe4">Knopfereignis4</string> 
<string name="button1">Knopf1</string> 
<string name="button2">Knopf2</string> 
<string name="button3">Knopf3</string> 
<string name="button4">Knopf4</string> 
</resources>

Natürlich können Sie auch direkt im Layout-Datei fest verdrahten, aber dies ist besser für die Wartung, was auch von der Android-Entwicklung empfohlen wird.

Die folgenden vier Methoden zur Umleitung von activity-Events in Android, die der Redakteur den Lesern vorgestellt hat, hoffen, dass sie den Lesern helfen. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht, der Redakteur wird umgehend antworten. Vielen Dank auch für die Unterstützung der Website "Ruf zu den Lehrbüchern"!

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig und eigenständig hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie verdächtige urheberrechtliche Inhalte finden, senden Sie bitte eine E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @ beim Senden einer E-Mail, um eine Beschwerde zu melden, und fügen Sie relevante Beweise bei. Sobald nachgewiesen, wird diese Website die涉嫌侵权的Inhalte sofort löschen.)

Möchtest du auch