2016-04-21 7 views
0

ich eine App, dieSchalt Aktivitäten verliert Funktionalität

  • MainActivity
  • CalculatorActivity
  • InformationActivity von 3 Aktivitäten besteht

Mein MainActivity hat eine Bestätigungstaste, die onClick die beginnt CalculatorActivity und alles ist korrekt und funktioniert wie geplant ed.

CalculatorActivity hat zwei Tasten, eine CalculateButton, die etwas und zeigt eine Nachricht und eine learnMorebutton prüft, ob die InformationActivity beginnt.

Wenn ich auf der CalculatorActivity zum ersten Mal in Ordnung, alles ist und die learnMoreButton working.Pressing navigiert mich zum InformationActivity .Das Aktivität sieht wie folgt aus:

InformationActivity:

goBackButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      switchActivity(); 
     } 
    }); 
} 
public void switchActivity(){ 
    final Intent intentObj = new Intent(this,CalculatorActivity.class); 
    startActivity(intentObj); 
} 

Ein goBack-Taste, die mich zurück zu CalculatorActivity. Going Zurück scheint die Funktionalität zu brechen. Obwohl das Layout dort ist und alles so aussieht, wie es sein sollte, macht das Drücken der Tasten (calculateButton, learnMoreButton) nichts.

CalculatorActivity:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); final Button calculateButton = (Button) findViewById(R.id.calculateId); final Button learnMoreButton = (Button) findViewById(R.id.learnMoreButtonId);

gibt es einige weitere Textview und EditText, die hier auftauchen nicht aber die point.Some mehr Methoden erhalten, die die Berechnungen, Getter und Setter tun.

Diese Methode public void switchActivity(){ final Intent intentObj = new Intent(this,Information_activity.class); startActivity(intentObj); }

Aber ich bin nicht mit onResume(), onPause() oder beliebigem Verfahren aus dem Lebenszyklus abgesehen von onCreate().

Aus einer Suche, die ich getan habe, habe ich herausgefunden, dass ich etwas falsch mache, wie ich den Aktivitätszyklus handhabe, aber ich kann immer noch keine Lösung finden. Die Dev-Dokumente haben mir nicht viel geholfen und einen Beitrag mit ein bisschen das gleiche Problem wie meiner alt ist.

Meine Frage ist, wie die Navigation von InformationActivity zu CalculatorActivity getan werden sollte, so wird die Funktionalität nicht brechen, wenn CalculatorActivity mit dem user.Which Verfahren zurück zur Interaktion kommt sollte onResume aufgerufen werden ()? , onRestart()? und wie sollte es aussehen?

Vielen Dank an alle, die bereit sind zu helfen.

P.S: Wie ich bereits erwähnt habe, habe ich die Dokumente für den Lebenszyklus einer Aktivität gelesen, aber ich habe die Lösung nicht gefunden.

+1

wenn Sie explizit Tasten haben, die neue Aktivitäten jedes Mal starten sie gedrückt werden, und Sie wollen nicht die Zurück-Taste verwenden, selbst vor einiger Zeit in dem Strom Sie Ihre Aktivität Finishing vor dem Start eines neuen wollen versuchen könnte, ein . Sie können dies mit dem Ziel() nach dem Aufruf von startActivity (intentObj) –

Antwort

1

diese

goBackButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     InformationActivity.this.finish(); 
    } 
}); 
} 

ausprobieren Anstatt zu sagen, wo zurück zu gehen, können Sie nur die Aktivität beenden und es wird automatisch zum vorherigen wechseln.

2

anstatt die neue Aktivität jedes Mal zu starten, beenden Sie die Informationsaktivität.

goBackButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     finish(); 
    } 
}); 

}

2

Sie erstellen zu viele Aktivitäten und bewegen sich auf diese Weise hin und her. Sie können entweder die Aktivität mit beenden(); oder Sie können auch mit onBackPressed();

goBackButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     onBackPressed(); 
    } 
}); 
+0

Ich denke, das sollte hierarchisch sein, so müssen Sie erklären, dass diese Unteraktivitäten Kindaktivitäten sind, damit dies gut funktioniert. – jobbert

1

Ich denke, Ihre Aktivitäten hierarchisch sind so sollten Sie in der Lage sein, die folgenden von Ihrem Hauptrechner Aktivität zu tun:

Intent i = new Intent(this, InformationActivity.class); 
startActivityForResult(i); 

Ihre Back-Button fügen Sie diesen Code:

goBackButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     setResult(Result.OK); 
     finish(); 
    } 
}); 
0

Sie schlagen alle das gleiche vor.Einfügen

Information_Activity.this.finish()

behoben die defekte Funktionalität, obwohl Sie alle richtig sind, kann ich nur eine Antwort auswählen.

Dank