So öffnen Sie eine zweite Aktivität beim Klicken auf die Schaltfläche in der Android-App

Lesezeit: 7 Minuten

So offnen Sie eine zweite Aktivitat beim Klicken auf die
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

 <?xml version="1.0" encoding="utf-8"?>
 <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="horizontal">

 <Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/main_buttons_photos" />

 </LinearLayout>

Als nächstes habe ich meine zweite Aktivität ACTIVITY_SEND_PHOTOS.XML welches ist

 <RelativeLayout 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" >

 <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@string/hello_world"
    tools:context=".SendPhotos" />

 <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/title_activity_send_photos"
    android:textAppearance="?android:attr/textAppearanceLarge" />

 </RelativeLayout>

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

    – 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

So offnen Sie eine zweite Aktivitat beim Klicken auf die
Juni

Sie können durch Klicken auf die Schaltfläche zur gewünschten Aktivität wechseln. Fügen Sie einfach diese Zeile hinzu.

android:onClick="sendMessage"

XML:

 <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="sendMessage"
        android:text="@string/button" />

Fügen Sie in Ihrer Hauptaktivität einfach diese Methode hinzu:

public void sendMessage(View view) {
    Intent intent = new Intent(FromActivity.this, ToActivity.class);
    startActivity(intent);
}

Und das Wichtigste: Vergessen Sie nicht, Ihre Tätigkeit in zu definieren manifest.xml

 <activity>
      android:name=".ToActivity"
      android:label="@string/app_name">          
 </activity>

  • Sie müssen hinzufügen > im Aktivitäts-Tag

    – Mageek

    21. September 2013 um 18:04 Uhr

  • Das funktioniert bei mir nicht. Die View , Intent und die Aktivitätsnamen sind rot. Muss ich etwas für View importieren?

    – Srujan Barai

    7. Juli 2015 um 23:15 Uhr

  • @SrujanBarai ja, beide importieren android.view.View; und importiere android.content.Intent; müssen importiert werden

    – William Schied

    22. Dezember 2016 um 4:06 Uhr

  • Es funktionierte gut für mich. Aber braucht er nicht einen setOnClickListener() auf seinem Button?

    – Vaggelis Manousakis

    24. Oktober 2018 um 0:29 Uhr

  • @VaggelisManousakis nein, es ist nicht erforderlich, da es bereits in XML vorhanden ist android:onClick="sendMessage"

    – Junid

    8. November 2019 um 15:42 Uhr


So offnen Sie eine zweite Aktivitat beim Klicken auf die
JD

Versuche dies

  Button button;

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

button=(Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent i = new Intent(getApplicationContext(),SendPhotos.class);
                        startActivity(i);
                    }
                });

 }

  • aber wo? Ich erhalte überall Fehler, wenn ich versuche, dies innerhalb der .java-Datei in Eclipse zu platzieren

    – Henry Aspden

    2. November 2012 um 12:08 Uhr

  • @HenryAspden importiert onclocklistener und Button.

    – JD

    2. November 2012 um 12:10 Uhr

  • @HenryAspden fügen Sie diesen Code nach onCreate und nachdem Sie Ihre ID gefunden haben.

    – JD

    2. November 2012 um 12:14 Uhr

  • @HenryAspden Ich habe meinen Code bearbeitet, versuche es jetzt. Ich habe diesen Code in onCreate eingefügt, versuchen Sie es auf diese Weise.

    – JD

    2. November 2012 um 12:15 Uhr


1645912390 153 So offnen Sie eine zweite Aktivitat beim Klicken auf die
Chintan Khetiya

Von Aktivität: Wo bist du gerade?

Zur Aktivität: wohin möchten Sie gehen?

Intent i = new Intent( MainActivity.this, SendPhotos.class);
startActivity(i);

Beide Aktivitäten müssen in der Manifestdatei enthalten sein, andernfalls wird die Klassendatei nicht gefunden und Force close ausgelöst.

Bearbeiten Sie Ihre Mainactivity.java

crate button's object;

Jetzt Code für Click-Event schreiben.

        Button btn = (button)findViewById(R.id.button1);
         btn.LoginButton.setOnClickListener(new View.OnClickListener() 
       {

                @Override
                public void onClick(View v) 
                {
                 //put your intent code here
                }
   });

Hoffe, es wird für Sie funktionieren.

  • Passt das in das Layout oder in die .java-Datei?

    – Henry Aspden

    2. November 2012 um 12:07 Uhr

  • Ok, Sie können diesen Code in das Klickereignis der Schaltfläche in der Hauptdatei activity.java einfügen

    – Chintan Khetiya

    2. November 2012 um 12:13 Uhr

1645912391 756 So offnen Sie eine zweite Aktivitat beim Klicken auf die
Ich bin nicht sehr gut darin

Button btn = (Button) findViewById(R.id.button1);

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent myIntent = new Intent(MainActivity.this, MainActivity2.class);
        MainActivity.this.startActivity(myIntent);       
    }  
});

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).

  1. Zuerst müssen Sie einen Button deklarieren, den Sie im Layout haben

  2. Verweisen Sie auf diese Schaltfläche, indem Sie ihre ID (mithilfe von findviewById) in oncreate finden

  3. setlistener für Button (wie setonclick listener)

  4. zuletzt das Klickereignis verarbeiten (bedeutet, dass eine neue Aktivität mit der Absicht gestartet wird, wie Sie bereits wissen)

  5. 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:

   <activity android:name="com.packagename.FromActivity"></activity>
   <activity android:name="com.packagename.ToActivity"></activity>

Ersetzen Sie Ihre MainActivity.class durch diesen Code

public class MainActivity extends Activity {

Button b1;
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 b1=(Button)findViewById(R.id.button1);
 b1.setOnClickListener(new View.onClickListener()
 {
  public void onClick(View v)
   {
       Intent i=new Intent(getApplicationContext(),SendPhotos.class);
       startActivity(i);
    }
 }
 )
}

Fügen Sie diesen Code in Ihre hinzu AndroidManifest.xml nach dem </activity> und davor </application>

<activity android:name=".SendPhotos"></activity>

868610cookie-checkSo öffnen Sie eine zweite Aktivität beim Klicken auf die Schaltfläche in der Android-App

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy