2017-12-09 5 views
-1

Mein Problem ist das folgende. Meine App hat einen Willkommensbildschirm, auf dem der Benutzer den "Weiter" -Knopf drückt und zum nächsten Bildschirm geht. Der nächste enthält ein Menü mit mehreren Schaltflächen. mein Problem ist, dass ich keine andere Aktivität auf dem zweiten Bildschirm öffnen kann (auf dem ersten Bildschirm öffnet es normal) mehr oder weniger dieses Schema unter (| activity1> Schaltfläche weiter | >> | activity2> Schaltfläche continue2 |> nicht antworten) Kompliment und Test apk auf einer Galaxie Grand Duos 4.2.2Wie öffne ich eine andere Aktivität aus einer Aktivität?

Code unter Code 1 Bildschirm (willkommen).

public class Main2Activity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Button button7 = (Button) findViewById(R.id.button7); 

    button7.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      setContentView(R.layout.activity_main4); 
     } 
    });}} 

Code 2 Tela

public class Main4Activity extends AppCompatActivity { 
private Button prova; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main4); 

    prova = (Button) findViewById(R.id.button5); 

    prova.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(Main4Activity.this, Main3Activity.class); 
      startActivity(intent); 
     } 
    }); 

}} 

2 Tela Code xml Taste

<Button 
    android:id="@+id/button5" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/button4" 
    android:layout_marginTop="11dp" 
    android:text="tela 2"/> 

Antwort

0

Ihr Problem ist, dass Sie nicht setContentView(R.layout.activity_main4); eine andere Aktivität öffnen können .Sie startActivity verwenden können Methode zum Öffnen einer anderen Aktivität.

Sie können dies versuchen.

1.remove den Code in Ihrer Main2Activity

setContentView(R.layout.activity_main4); 

2.Add Änderung dieser

button7.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Intent i=new Intent(Main2Activity.this,Main4Activity.this); 
     startActivity(i); 
    } 
});}} 
+0

Es funktionierte perfekt, danke !! – gabriel

+0

Viel Glück für Sie. @ gabriel – KeLiuyue

1

Ihr Problem ist, dass Sie nicht setContentView verwenden (R.layout.activity_main4); um eine andere Aktivität zu öffnen. Sie können startActivity Methode verwenden, um eine andere Aktivität zu öffnen.

  1. Entfernen Sie den Code in Ihre Main2Activity

    setContentView (R.layout.activity_main4);

  2. schreiben Sie diesen Code in onClick:

    Intent i = new Intent (Main2Activity.this, Main4Activity.this);

    startActivity(i); 
    

    und registrieren alle Aktivitäten in manifest Datei

    Hoffnung seine hilft Ihnen

+0

hat nicht funktioniert und nicht "context.startActivity (i);" existiert :( – gabriel

0

Zuerst möchte ich sicherstellen, dass Sie verstehen, was Sie schreiben .

button7.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     setContentView(R.layout.activity_main4); 
    } 
}); 

In Ihrem Onclick, setzen Sie Ihre Sicht auf Main2Activity auf Bildschirm von activity_main4.xml. Aber Sie stehen immer noch in Main2Activity (dh Sie befinden sich in Main2Activity mit der Ansicht activity_main4.xml).

In diesem Fall wurde Main4Activity nicht initialisiert und die Schaltfläche prova wurde ebenfalls nicht initialisiert. Wenn Sie also die Taste "prova" drücken, wird nichts unternommen.

Zweitens, um Ihr Problem zu lösen, machen Main4Activity initialisiert werden, müssen Sie es starten. Also, anstelle von:

setContentView(R.layout.activity_main4); 

in Main2Activity, die nur die Ansicht ändern, nicht die Aktivität. Sie sollten verwenden

Intent intent = new Intent(Main2Activity.this, Main4Activity.class); 
startActivity(intent); 

Ich hoffe, Sie können dies verstehen!

+0

Es hat perfekt funktioniert, danke !! – gabriel

Verwandte Themen