1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  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
[ERLEDIGT] Bitmap von Activity an Activity übergben Android App Entwicklung 03.09.2017
[OFFEN] Activity als Dialog - RecyclerView funktioniert nicht mehr Android App Entwicklung 14.08.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[GELÖST] Übergabe an zweite Activity Android App Entwicklung 11.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Intent mit Daten (putExtra) zu anderer Activity Android App Entwicklung 14.02.2017
AsyncTasks: "FTP Download" / "FTP liste Daten in Verzeichnis" Probleme Android App Entwicklung 16.01.2017
Bestätigungsdialog in der Activity Android App Entwicklung 19.12.2016
AI2: mit Listpicker- Auswahl mehrere Labels aus verschiedenen Index- Listen füllen. Android App Entwicklung 09.12.2016
Du betrachtest das Thema "Wie kann Listener andere Activity informieren?" im Forum "Android App Entwicklung",