Event wenn Preferences geschlossen werden?

  • Hi,


    ich öffne meinen Preferences-Dialog mittels


    Code
    Intent intent = new Intent(this,mein.pfad.zum.layout);
    startActivity(intent);


    Jetzt wüsste ich allerdings gerne, wann der User diesen Dialog wieder schließt, so dass ich die geänderten Einstellungen lesen und anwenden kann - wie kann ich das feststellen? Gibt es irgend eine Art on-closed-Event?

  • Du meinst wahrscheinlich deine PreferenceActivity und nicht einen Dialog, oder?


    Wenn deine PrefsActivity endet wird in der aufgerufenen Activity auf jeden Fall der onResume() aufgerufen - allerdings auch aus anderen Gründen.


    Aber im onResume solltest du die Prefs-Einstellungen lesen, dann sind sie auf jeden Fall aktuell.

  • Code
    Intent intent = new Intent(this,mein.pfad.zum.layout);
    startActivity(intent);



    sollte da nicht der pfad zu einer Activity sein anstatt zu einem layout ?


    und dann in der Activity mit setContentView der pfad zur layout ?


    oder täusche ich mich da ? ich frage eigentlich nur weil ich selbst noch programmier anfänger bin und immer noch dazulernen kann / möchte.

  • sollte da nicht der pfad zu einer Activity sein anstatt zu einem layout ?


    Nein, das ist alles, was ich mache, um meinen PReferences-Dialog aufzurufen. Deswegen gibt es auch kein onResume(), da ich tatsächlich keine abgeleitete Klasse oder ähnliches habe. Und das mit dem Layout stimmt auch, an der Stelle ist das Layout meines Preferences-Dialoges hinterlegt, den Rest macht Android automagisch.

  • Hallo Oxy,


    du kannst, was empfehlenswert ist, Activitys die eine Antwort zurück liefern benutzen.


    Java
    Intent i = new Intent(this, deine_klasse.class);startActivityForResult(i, Preference_Activity);


    Startet die Preference_Activity.


    In der Preference_Activity setzt du irgendwelche Werte und packst sie in ein Intent und lieferst sie wieder zurück.


    In deiner normalen Activity nimmst du die Werte in der onActivityResult Methode entgegen.


    Java
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  super.onActivityResult(requestCode, resultCode, data);
    	if(resultCode==RESULT_OK && requestCode==1)
    	String msg = data.getStringExtra("returnedData");	}


    Falls du mehr Informationen dazu brauchst, findest du sehr viele Tutorials zu startActivityForResult.


    Gruß

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!