Ich versuche, eine neue "Aktivität" zu öffnen, indem ich auf eine Schaltfläche in meiner "OnClickListener"-Methode klicke. Wie funktioniert die Methode "OnClickListener" und was sollte darin getan werden, um eine neue "Aktivität" zu starten?
Diese Aufgabe kann mit einem der android's wichtigsten Baustein als Intents und eine der Methoden public void startActivity (Intent intent)
, die zu Ihrer Activity-Klasse gehört erreicht werden.
Ein Intent ist eine abstrakte Beschreibung eines auszuführenden Vorgangs. Er kann mit startActivity verwendet werden, um eine Aktivität zu starten, mit broadcastIntent, um ihn an alle interessierten BroadcastReceiver-Komponenten zu senden, und mit startService(Intent) oder bindService(Intent, ServiceConnection, int), um mit einem Hintergrunddienst zu kommunizieren.
Ein Intent bietet die Möglichkeit, zur späten Laufzeit eine Bindung zwischen dem Code in verschiedenen Anwendungen herzustellen. Sein wichtigster Verwendungszweck ist das Starten von Aktivitäten, wo er als Klebstoff zwischen Aktivitäten betrachtet werden kann. Es handelt sich im Grunde um eine passive Datenstruktur, die eine abstrakte Beschreibung einer auszuführenden Aktion enthält.
Siehe die offizielle Dokumentation -- http://developer.android.com/reference/android/content/Intent.html
public void startActivity (Intent intent)
-- Wird verwendet, um eine neue Aktivität zu starten.
Nehmen wir also an, Sie haben zwei Activity-Klassen --
PresentActivity -- Dies ist Ihre aktuelle Aktivität, von der aus Sie die zweite Aktivität starten möchten.
NextActivity -- Dies ist Ihre nächste Aktivität, zu der Sie wechseln wollen.
Der Intent würde also wie folgt aussehen
Intent(PresentActivity.this, NextActivity.class)
Der vollständige Code sieht dann so aus
public class PresentActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);
// currentContext.startActivity(activityChangeIntent);
PresentActivity.this.startActivity(activityChangeIntent);
}
});
}
}
//create a variable that contain your button
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){
@Override
//On click function
public void onClick(View view) {
//Create the intent to start another activity
Intent intent = new Intent(view.getContext(), AnotherActivity.class);
startActivity(intent);
}
});
einfach:
Aktivität starten (onclick handler)
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
auf die neue Aktivität:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
und fügen Sie Ihre neue Aktivität in der AndroidManifest.xml hinzu:
<activity android:label="@string/app_name" android:name="NextActivity"/>