2017-04-21 3 views
-1

Dateien:Wie können mehrere Layouts durch Klicken auf mehrere Schaltflächen angezeigt werden?

  • activity_main.xml (button1, button2)

  • layout1.xml (button3, button4, button5)

  • layout2.xml (button6, button7, Button8)

  • layoutA.xml (mehrere CheckBox und textView)

  • layoutB.xml (multiple Kästchen und Textview)

  • layoutC.xml (multiple Kästchen und Textview)

  • layoutD.xml (multiple Kästchen und Textview)

  • layoutE.xml (multiple Kästchen und Textview)

  • layoutF.xml (mehrere CheckBox und TextView)

Okay, so was ich meine app tun möchte, ist:

Schritt 1 - Erster Bildschirm activity_main.xml mit 2 Tasten

Schritt 2 - Benutzer klickt button1/button2 und layout1.xml/layout2.xml auftaucht.

Step 3 - Benutzer klickt auf einen der Knöpfe 3 in jeder der 2-Layouts und dementsprechend layoutA/B/C/D/E/F mit checkboxes und textview zu zeigen.

Schritt 4 - Benutzer klickt Schaltfläche Zurück und statt der App vollständig Verlassen Rollback nur auf das vorherige aktive Layout wie layoutA zu layout1, layout1 zu activity_main usw.

Ich war in der Lage, die ersten 2 Schritte zu implementieren, aber nicht in der Lage, die andere Hälfte zu tun.

Ich würde mich freuen, wenn mir jemand helfen könnte. Danke!

Das ist meine MainActivity.java Datei

public class MainActivity extends Activity 
{ 

    Button button1; 
    Button button2; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button1 = (Button) findViewById(R.id.button1); 
     button1.setOnClickListener(new View.OnClickListener() 
     { 

      @Override 
      public void onClick(View v) 
      { 
       setContentView(layout1); 
      } 
     }); 
     button2 = (Button) findViewById(R.id.button2); 
     button2.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       setContentView(R.layout.layout2); 
      } 
     }); 
    } 
} 

Antwort

2

starten neue Aktivität

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); 
CurrentActivity.this.startActivity(myIntent); 

Start-Aktivität mit Parametern

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); 
myIntent.putExtra("firstKeyName","FirstValue"); 
myIntent.putExtra("secondKeyName","SecondValue"); 
startActivity(myIntent); 

lesen Daten in gestarteter Aktivität

Intent myIntent = getIntent(); // get previously intent 
String firstKeyName = myIntent.getStringExtra("firstKeyName"); // this return "FirstValue" 
String secondKeyName= myIntent.getStringExtra("secondKeyName"); 
+0

Vielen Dank. Es hat funktioniert. Also ich öffne Aktivität 1, Knopfklick bringt mich zu act2, Knopfklick bringt mich zu act3. Wenn ich die Zurück-Taste drücke, bringt es mich von Akt3 nach Akt1. Irgendein wat, um zurückzugehen, um 2 anstelle von act1 zu handeln? Ich habe ungefähr 30 Layoutdateien für act3 und es wäre schwierig für mich, für jeden eine eigene Klasse zu erstellen. Jede einfachere Methode? Vielen Dank! –

+0

Überprüfen Sie meine Bearbeitung, Sie können Werte zu der Absicht hinzufügen, in der nächsten Aktivität erhalten sie und laden Sie ein Layout oder eine andere gemäß den Daten gesendet nur mit einer Klasse. "if (firstKeyName.equals (" open 1 ")) {Layout laden X} else if (firstKeyName.equals (" open 2 "))) {load layout Y} ... Über die Rückkehr zur vorherigen Aktivität, falls Aktivität 1 öffnet Aktivität 2 und 2 öffnet 3, drücken Sie die Zurück-Taste wird in der gleichen Reihenfolge zurück, überprüfen Sie, dass Sie nicht die finish() -Methode rufen diese zerstört die Aktivität, und nicht überbitten OnBackPressed() -Methode – Israel

+0

Danke für die Antwort, aber ich bin sehr neu in der Android-Entwicklung, also können Sie mir helfen, indem Sie den Code mit den Dateinamen, die ich oben zur Verfügung gestellt habe? –

Verwandte Themen