Ich versuche, neues Activity
zu öffnen, indem ich in meiner OnClickListener
-Methode auf eine Schaltfläche klicke. Wie funktioniert die OnClickListener
-Methode und was muss getan werden, um eine neue Activity
zu starten?
Diese Aufgabe kann mithilfe eines der Hauptbausteine von Android mit dem Namen Intents und einer der Methoden public void startActivity (Intent intent)
ausgeführt werden, die zu Ihrer Aktivitätsklasse gehören.
Eine Absicht ist eine abstrakte Beschreibung einer auszuführenden Operation. Es kann mit startActivity zum Starten einer Aktivität, mit broadcastIntent zum Senden an interessierte BroadcastReceiver-Komponenten und mit startService (Intent) oder bindService (Intent, ServiceConnection, int) zum Kommunizieren mit einem Hintergrunddienst verwendet werden.
Ein Intent bietet die Möglichkeit, eine späte Laufzeitbindung zwischen dem Code in verschiedenen Anwendungen durchzuführen. Die wichtigste Verwendung ist der Start von Aktivitäten, bei denen es sich um den Klebstoff zwischen Aktivitäten handelt. Grundsätzlich handelt es sich um eine passive Datenstruktur mit einer abstrakten Beschreibung einer auszuführenden Aktion.
Lesen Sie die offiziellen Dokumente - http://developer.Android.com/reference/Android/content/Intent.html
public void startActivity (Intent intent)
- Wird verwendet, um eine neue Aktivität zu starten.
Angenommen, Sie haben zwei Aktivitätsklassen -
PresentActivity - Dies ist Ihre aktuelle Aktivität, von der aus Sie zur zweiten Aktivität wechseln möchten.
NextActivity - Dies ist Ihre nächste Aktivität, auf der Sie sich bewegen möchten.
Die Absicht wäre also so
Intent(PresentActivity.this, NextActivity.class)
Schließlich wird dies der vollständige Code sein
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);
}
});
Benutze OnClicklistener
oder du kannst Android:onClick="myMethod"
im xml Code Ihrer Schaltfläche, aus dem Sie ein neues Layout öffnen. Wenn Sie auf diese Schaltfläche klicken, wird die Funktion myMethod automatisch aufgerufen. Ihre myMethod
-Funktion in der Klasse sieht so aus.
public void myMethod(View v) {
Intent intent=new Intent(context,SecondActivty.class);
startActivity(intent);
}
Und in diesem SecondActivity.class neues Layout in der Inhaltsansicht einstellen.
einfach:
startaktivität (Onclick-Handler)
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
zur neuen 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üge deine neue Aktivität im AndroidManifest.xml hinzu:
<activity Android:label="@string/app_name" Android:name="NextActivity"/>