1. AquaBall, 31.03.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    In meinem Programm gibt es ein OptionenMenü (mit dem technische Einheiten festgelegt werden):
    Code:
    public class M_Einstellungen extends PreferenceActivity 
                                 implements OnSharedPreferenceChangeListener {
    @Override protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.m_einstellungen);
        }
    // ...
        public void onSharedPreferenceChanged(SharedPreferences sPref, String key) {
            ListPreference lp = (ListPreference)getPreferenceScreen() 
                                .findPreference(key);
            lp.setSummary("... wird berechnet in: " +  sPref.getString(key, ""));
        }
    }
    Zusätzlich gibt es ein Activity das Berechnungen durchführt, (abhängig von den obigen Einheiten).
    Code:
    public class Rechnungen extends Activity {
    // ...
    @Override public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.rechnungen);
            
            // TemperaturEinheit einstellen: 
            SharedPreferences sharedPreferences = PreferenceManager
                  .getDefaultSharedPreferences(getBaseContext());  
            ((TextView) findViewById(R.id.ehTemp)).setText(sharedPreferences
                  .getString(getBaseContext().getString(R.string.keyTemp),"??"));  
             // Berechnungen + Ausgabe ... über diverse TextWatcher ...
        }
    @Override public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.optionen, menu);
            return true;
        }
    @Override public boolean onOptionsItemSelected(MenuItem item){
            Intent intent;
            switch (item.getItemId()) {
            case R.id.m_einstellungen:
                intent = new Intent( this, M_Einstellungen.class );
                startActivity(intent);            
                break;
            }
       }
    // div TextWatcher ...
    }
    
    Mir gelingen zwar Listener in der selben Activity problemlos, aber:
    Wie erkennt meine Rechnungs-Activity, wenn im Optionen Menü M_Einstellungen etwas geändert wird?
    Wie kann ein Listener im Optionen Menü eine andere Activity/Layout/Programm informieren?
     
  2. sixi, 02.04.2012 #2
    sixi

    sixi Erfahrener Benutzer

    Wenn du es über den OnSharedPreferenceChangeListener machen willst, dann lass deine Activity diesen implementieren und setz ihn auf die Activity...

    ... oder du lädst die Werte aus den Preferences einfach neu, wenn der User wieder zu deiner Activity zurückkehrt.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Hardware Sensoren an Listener übergeben Android App Entwicklung Montag um 23:01 Uhr
Views in Liste drehen, wie breite / Höhe anpassen? Android App Entwicklung 26.12.2018
Fehlermeldung 'Activity has leaked window' Android App Entwicklung 20.08.2018
Daten speichern in einer Datei auf der jede Aktivität zugreifen kann Android App Entwicklung 12.05.2018
Du betrachtest das Thema "Wie kann Listener andere Activity informieren?" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.