2016-08-24 4 views
-1

Ich bin nicht sicher, dass diese Problemumgehung der richtige Weg ist, um mein Ziel zu erreichen, einen schnellen Text in einem Spinner zu haben. Was mit dieser Anwendung geschieht, ist, dass der Drehknopf über eine Absicht zu einer anderen Aktivität navigiert und wenn der Benutzer mit dem Drehfeld zurück zur Hauptaktivität navigiert, haben sie zwei Möglichkeiten zurück. Eine mit einem Button und einem Klick-Event, die andere mit einem Klick auf den BACK-Button des Gerätes. Ich versuche, den Code in dem Click-Ereignis von der Methode aufrufen, die das Gerät BACK-Taste schafft, weiß ich nicht, wie das Click-Ereignis aufrufen aus dem Gerät BACK-Taste MethodeRufen Sie eine Methode von einer anderen Methode Android

@Override 
public void onBackPressed() { 
    Toast.makeText(getApplicationContext(),"Use BACK BUTTON\n\n"+"On the Screen",Toast.LENGTH_LONG).show(); 
    // I want to call goBack(View view) from here 
    // +++++++++++++++++++++++++++++++++++++++++++ 
} 

public void goBack(View view){ 
    Intent i = new Intent(PageTwo.this, MainActivity.class); 
    startActivity(i); 
} 

Der Grund, warum ich diese Absicht verwenden Navigieren Sie zurück zur Hauptaktivität, wenn die Variablen im Spinner neu geladen werden

+0

Dies wird Ihnen ein Problem verursachen. Eine neue Instanz der Hauptaktivität wird geöffnet und die aufrufende Aktivität verbleibt auch im Stapel, da Sie sie nicht schließen. – Ramit

+0

@Ramil Wie schließe ich den Stapel Ich nehme an, dies führt zu Speicherlecks kann ich nur das Neuladen des Spinner in einer Methode und nur neu laden und die Navigation zurück mit onBackPressed –

+0

Sie können die aufrufende Aktivität beenden und Spinner in neu laden auf Wiederaufnahme. Problem gelöst :) – Ramit

Antwort

1

Es sieht so aus, als ob goBack(View) höchstwahrscheinlich aus einem onClick Setup in Ihrem XML-Layout stammt. Da Sie die Ansicht nicht verwenden, übergeben Sie einfach null:

@Override public void onBackPressed() { 
    goBack(null); 
} 
+0

Rummier Das hat den Trick Ich weiß nicht, warum ich nicht darüber nachgedacht habe Noch als Siebter zu lernen Das ist wie Französisch zu lernen, wenn du in Deutschland lebst –

+0

Rummier Wenn ich also eine Methode für die Hauptaktivität erstelle, die den Spinner neu lädt, kann ich das auf der PageTwo Activity mit aufrufen eine Absicht ODER wo würde ich den Aufruf der reLoad() -Methode tun –

0

Ich weiß nicht, ob ich Sie richtig, wenn Sie wollen einfach nur auf die Aktivität zurück, die eine andere Aktivität, können Sie einfach anrufen finish() Methode der Aktivitätsklasse:

 @Override 
public void onBackPressed() { 
    finish(); 
} 

finish() reference

+0

Ich verstehe, dass wenn ich finish() aufrufen, aber wenn ich dieses Konzept verwenden wird der Spinner nicht neu geladen und der Benutzer kann nicht einen weiteren Ausflug zurück zur letzten Erfahrung machen indem Sie es aus dem Kreisel auswählen, war mein ZIEL, den Kreisel neu zu laden, daher die Verwendung der Absicht, um zum Kreisel zurück zu navigieren –

Verwandte Themen