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, 23.04.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Meine Activity ruft manchmal eine andere auf, und kehrt dann wieder zurück zur ersten.

    Dazu übergeb ich Daten mit
    Code:
    SharedPreferences preferences = 
          PreferenceManager.getDefaultSharedPreferences(myActivity.this);
    Editor edit = preferences.edit();
    edit.putString("übergabe",meinText);
    edit.commit();
    
    und
    Code:
    String meinText=preferences.getString("Übergabe", "??");
    
    Das läuft soweit einwandfrei.
    Nun komm ich aber in die Situation, dass ich Klassen mit 10-15 Attributen (String,double,boolean, ...) übergeben will.

    Gibt's da einen sinnvollen Ansatz?
    (ohne dass ich jeden einzelnen Wert in String umwandeln muss, und danach wieder zurückverwandeln.)
     
  2. BFK, 23.04.2012 #2
    BFK

    BFK Erfahrener Benutzer

    Hi,
    Dein Problem mit SharedPreferences zu lösen ist viel zu aufwendig finde ich.

    Ich mache das so..:

    Du erstellst ne Klasse extends der Application also so..:
    Code:
    public class MyApp extends Application {
    
    private int was;
    
    public void setWas(int w)
    {
      was = w;
    }
    
    public int getWas()
    {
      return was;
    }
    
    }
    
    
    Da fügst du alle Werte die du speichern willst und die dazugehörigen setter und getter-Methoden.

    Dann in einer beliebigen Activity-Klasse rufst du die Werte ab oder speicherst da Werte:

    Code:
    MyApp app = (MyApp) this.getApplication();
    
    // heir kannst du dann Werte abfragen oder speichern
    
    Die Klasse MyApp wird erst dann zerstört wenn du deine App verlässt, so kannst du sicher sein, dass deine Daten nicht gelöschtr werden bis du die App natürlich schliesst..!
     
    Madlip gefällt das.
  3. AquaBall, 23.04.2012 #3
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Klingt vielversprechend, aber ganz versteh ich es nicht.
    (Weil ich noch nie selbst etwas "zu extendendes" gemacht habe.)

    Ich hab bisher 2 Activities

    Code:
    public class HauptProgramm extends Activity {
        DivDaten meineDaten;
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.hauptprogramm);
            machwas(meineDaten);  
        }
        machwas(...) {
           ... // und stell die Daten bereit, 
               // und rufe manchmal DetailScreen
              Intent intent = new Intent( HauptProgramm.this, DetailScreen.class );
              startActivity(intent);
        }
    
    }
          
    public class DetailScreen extends Activity {
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.detailscreen);
            machAuchWas();  //  und hol die Daten irgendwie
        }
    }
    
    Ich bin nicht fit genug um jetzt zu wissen, wo ich was extenden muss/kann.
    Kannst du mir einen Tip geben?
     
    Zuletzt bearbeitet: 23.04.2012
  4. BFK, 24.04.2012 #4
    BFK

    BFK Erfahrener Benutzer

    Du erstellst eine neue Klasse im gleichen Packet wo deine Activitys-Klassen sind.
    Zum Beispiel die Klasse, die ich davor geschrieben hab, da benutzt extend, so erweiterst du die Klasse Application.

    Da kannst du deine Variablen zwischenspeichern.

    Aber wenn du eigentlich nur von einer Activity zur anderen Daten übermitteln willst geht es auch einfacher.
     
  5. frankmehlhop, 08.10.2012 #5
    frankmehlhop

    frankmehlhop Neuer Benutzer

    Ja und wie?
    (wenn man obige Fragestellung beachtet)

    Frank
     
  6. StefMa, 08.10.2012 #6
    StefMa

    StefMa Gewerbliches Mitglied

    Datenübergebe tust du mit
    Intent.putExtra();

    Holen kannst du sie dir dann in der neuen Activity mit
    this.getExtra();

    Oder so ähnlich.
    Lies dir das Android-Training auf der developer-seite durch. Dort gibt es ein Beispiel!

    Gruß
     
  7. Madlip, 08.10.2012 #7
    Madlip

    Madlip Fortgeschrittenes Mitglied

    mit diesen "intent.putextra" muss man jedoch beachten das man komplexere Datentypen nicht übergeben kann. Es kommt halt am ende des Tages darauf an was du genau machen willst. Ich bin mir gerade nicht sicher aber über diese intent, extra kann man doch nur string und int (maximal noch boolean) übergeben oder?
     
  8. swordi, 08.10.2012 #8
    swordi

    swordi Gewerbliches Mitglied

    Kompliziertere Objekte machst einfach parcelable

    Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
     
  9. Madlip, 08.10.2012 #9
    Madlip

    Madlip Fortgeschrittenes Mitglied

    ok und wie macht man das?

    Nehmen wir an wir haben eine ArrayList<Person>

    Person hat zwei String, nen int, double etc.

    wie macht man das dann?
     
  10. maniac103, 08.10.2012 #10
    maniac103

    maniac103 Android-Lexikon

    Google hilft :p - siehe z. B. hier

    Gesendet von meinem MB525 mit Tapatalk 2
     
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] In SQLite DB auf nächsten/vorherigen Datensatz zugreifen Android App Entwicklung 23.03.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
Bestätigungsdialog in der Activity Android App Entwicklung 19.12.2016
Online-Kalender in einem Fragment/einer Activity Android App Entwicklung 17.11.2016

Users found this page by searching for:

  1. intent datenübergabe

    ,
  2. android activity datenübergabe

Du betrachtest das Thema "Datenübergabe an nächste Activity" im Forum "Android App Entwicklung",