So öffnen Sie eine zweite Aktivität beim Klicken auf die Schaltfläche in der Android-App
Lesezeit: 7 Minuten
Henry Aspden
Ich lerne, Android-Anwendungen zu erstellen, und benötige spezielle Hilfe. Ich kann anscheinend nicht verstehen, welche Bits des Vorlagencodes ich ändern muss und welche Bits statisch sind.
In dem LAYOUT Ordner habe ich meine ACTIVITY_MAIN.XML was liest
Ich habe dann meine MainActivity.java (Ist das die .class?) das liest Paket com.example.assent.bc;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
// Do something in response to button
}
}
und dann meine SendPhotos.java Datei, die ist;
package com.example.assent.bc;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class SendPhotos extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_photos);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_send_photos, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
Ich möchte, dass die Schaltfläche in meiner Hauptaktivität mit meiner sendphotos-Aktivität verknüpft wird, indem ich einfach diese Aktivität öffne, nichts Besonderes, keine Daten oder irgendetwas sende.
Ich weiß, dass ich irgendwo meine brauche
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
aber ich habe keine ahnung was ich ersetzen soll ToActivity.class mit oder was ich sonst noch wo brauche.
mögliches Duplikat von Using Intent in einer Android-Anwendung, um eine andere Aktivität anzuzeigen
Die Antwort für den kompletten Noob von einem kompletten Noob: MainActivity ist der Name der ersten Aktivität. MainActivity2 ist der Name der zweiten Aktivität. button1 ist die ID der Schaltfläche in XML für MainActivity Aktivität.
Folgen Sie einfach diesem Schritt (ich schreibe keinen Code, nur Bcoz, Sie können kopieren und einfügen und können nicht lernen).
Zuerst müssen Sie einen Button deklarieren, den Sie im Layout haben
Verweisen Sie auf diese Schaltfläche, indem Sie ihre ID (mithilfe von findviewById) in oncreate finden
setlistener für Button (wie setonclick listener)
zuletzt das Klickereignis verarbeiten (bedeutet, dass eine neue Aktivität mit der Absicht gestartet wird, wie Sie bereits wissen)
Vergessen Sie nicht, Aktivitäten in der Manifestdatei hinzuzufügen
Übrigens ist dies nur einfach. Ich möchte Ihnen vorschlagen, dass Sie einfach mit einfachen Tutorials beginnen, die im Internet verfügbar sind.
Viel Glück für Android
Ersetzen Sie den folgenden Zeilencode:
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(this);
}
public void onClick(View v) {
if(v.getId==R.id.button1){
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
}
}
}
Fügen Sie die folgenden Zeilen in Ihre Manifestdatei ein:
mögliches Duplikat von Using Intent in einer Android-Anwendung, um eine andere Aktivität anzuzeigen
– Niranj Patel
2. November 2012 um 11:15 Uhr
ToActivity.class ist Ihr zweiter Aktivitätsname
– Niranj Patel
2. November 2012 um 11:17 Uhr
Dies kann die beste Quelle für Sie sein
– Usama Sadiq
8. April 2015 um 17:20 Uhr
Absichtsklasse hat keinen Konstruktor, der zwei Klassen als Argument akzeptiert!. was soll ich machen?
– Emad Aghayi
22. April 2015 um 11:10 Uhr