Wie kann Listener andere Activity informieren?

A

AquaBall

Fortgeschrittenes Mitglied
2
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?
 
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.
 

Ähnliche Themen

M
Antworten
3
Aufrufe
163
moin
M
S
Antworten
7
Aufrufe
1.159
swa00
swa00
OnkelLon
Antworten
13
Aufrufe
1.983
OnkelLon
OnkelLon
Zurück
Oben Unten