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 - Wie kann Listener Forum Datum
[OFFEN] Wie kann ich mehrere Marker in eine MapView laden Android App Entwicklung 25.03.2017
[OFFEN] Wie kann ich den Hintergrund abhängig vom Vordergrund Bild dynamisch veränderbar machen? Android App Entwicklung 24.03.2017
Wie kann ich eine lokale PDF rendern ? Android App Entwicklung 20.02.2017
Wie kann ich als Privatperson eine App an ein Unternehmen verkaufen ? Android App Entwicklung 29.01.2017
Wie kann ich ein Spiel nach dem Timerende stoppen ? Android App Entwicklung 22.01.2017
Wie kann ich die Anzahl von Images im Drawableordner zählen? Android App Entwicklung 08.01.2017
Wie kann ich aus der MainActivity eine Methode in einer anderen Klasse aufrufen? [GELÖST] Android App Entwicklung 27.07.2016
Wie kann man vom Widget aus ein Fragment öffnen? Android App Entwicklung 26.06.2016
[SINNLOS] Temporäre Spielwiese für die neue AH-App - einfach ignorieren Android App Entwicklung Dienstag um 13:31 Uhr
[OFFEN] Unions wie in C, C++? Android App Entwicklung 08.05.2017