Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Ganriel741, 06.08.2019 #1
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    Hallo liebe Dev's,

    und zwar beschäftigt mich jetzt schon seit mittlerweile zwei Tagen ein Problem für das ich einfach keine Lösung finde, was aber definitiv machbar ist und eigentlich nicht schwer zu lösen sein kann aber ich bin wirklich kurz vorm verzweifeln

    Und zwar habe ich eine Activity A auf welcher mehrere EditText Felder sind,

    Die erste EditText bekommt ihren Inhalt von Activity B welche einen Barcodereader hat und das Ergebnis als intent direkt zurück zu Activity A gibt und in die EditText schreibt...

    Danach kommen noch weitere EditText welche auf Activity A manuell eingegeben werden


    Zum Schluss ist eine TextView welche beim daraufklicken Activity C mit einer ListView öffnet und alle vorherigen Daten inkl. den Wert des Barcodereaders in ein neues Intent packt und alles an Activity C schickt

    Auf Activity C ist eine ListView mit Items, wenn man eines davon anklickt wird wieder ein Intent erstellt welches alles zurück an Activity A schickt....

    Alles ausser den blöden Barcode, egal wie ich es anstelle mit Schleifen, anderen Variabel egal...

    Das eine Intent löscht immer das andere

    Also nochmal kurz A empfängt jeweils von B und C ein Intent, das letzte Intent löscht aber immer das vorhergehende selbst wenn ich die vorherigen Daten mitgebe anstatt sie nur von A zu empfangen

    Ich hoffe wirklich das mir irgendwer mit einem Tipp auf die Sprünge helfen kann, danke schon einmal
     
  2. jogimuc, 06.08.2019 #2
    jogimuc

    jogimuc Erfahrenes Mitglied

    Hallo

    Wenn du in einer Activity Itents von verschiedenen Richtungen mit unterschiedlichen Inhalt empfängst. Solltest du das auch auswerten und entsprechend darauf reagieren.
    Benutze einfach ein Key wo du angibst wo der Intent kommt.

    Ohne Code werde wir auch hier nicht weiter kommen.
     
  3. Ganriel741, 06.08.2019 #4
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    package com.gh.goplus.NewFoodPackage;

    import androidx.appcompat.app.AppCompatActivity;

    import android.Manifest;
    import android.content.Context;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.os.Bundle;
    import android.os.Vibrator;
    import android.util.SparseArray;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.widget.TextView;

    import com.gh.goplus.R;
    import com.google.android.gms.vision.CameraSource;
    import com.google.android.gms.vision.Detector;
    import com.google.android.gms.vision.barcode.Barcode;
    import com.google.android.gms.vision.barcode.BarcodeDetector;

    import java.io.IOException;



    public class NewFoodBarcodeReaderActivity extends AppCompatActivity {


    // Variablen
    SurfaceView surfaceView;
    CameraSource cameraSource;
    TextView textView;
    BarcodeDetector barcodeDetector;





    // OnCreate Methode
    @override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_food_barcode_reader);




    // Intitialisieren
    surfaceView = (SurfaceView) findViewById( R.id.camerapreview );
    textView = (TextView) findViewById( R.id.textView );

    barcodeDetector = new BarcodeDetector.Builder( this )
    .setBarcodeFormats( Barcode.EAN_13 ).build();

    cameraSource = new CameraSource.Builder( this, barcodeDetector )
    .setAutoFocusEnabled( true )
    .setRequestedPreviewSize( 640, 480 ).build();




    surfaceView.getHolder().addCallback( new SurfaceHolder.Callback() {

    @override
    public void surfaceCreated(SurfaceHolder holder) {
    if (checkSelfPermission( Manifest.permission.CAMERA ) != PackageManager.PERMISSION_GRANTED) {
    return;
    }
    try {
    cameraSource.start( holder );
    }catch (IOException e)
    {
    e.printStackTrace();
    }
    }



    @override
    public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
    }



    @override
    public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
    cameraSource.stop();
    }
    } );









    barcodeDetector.setProcessor( new Detector.Processor<Barcode>() {
    @override
    public void release() {
    }

    @override
    public void receiveDetections(Detector.Detections<Barcode> detections) {
    final SparseArray<Barcode> barcode = detections.getDetectedItems();

    if (barcode.size()!=0)
    {

    textView.post( new Runnable() {
    @override
    public void run() {
    Vibrator vibrator = (Vibrator)getApplicationContext().getSystemService( Context.VIBRATOR_SERVICE );
    vibrator.vibrate( 1000 );
    textView.setText( barcode.valueAt( 0 ).displayValue );




    // Weise der Variablen "barcodewert" den Barcode zu
    String barcodewert = textView.getText().toString();

    // INTENT Übergebe Ergebnis von BarcodeReader an NewFood1
    Intent intent = new Intent(NewFoodBarcodeReaderActivity.this, NewFood1Activity.class);

    intent.putExtra("EXTRA_BARCODE_READER",barcodewert);

    startActivity(intent);

    }
    } );
    }
    }
    } );







    }
    }
     
  4. Ganriel741, 06.08.2019 #4
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    package com.gh.goplus.NewFoodPackage;

    import androidx.appcompat.app.AppCompatActivity;

    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    import com.gh.goplus.R;

    public class NewFood1Activity extends AppCompatActivity {



    // Variablen
    TextView btnNext;
    Button btnBarcodeNf;
    Button btnNewfoodBack;
    EditText etbarcode;

    // Variabeln empfang aus lv_nf_kategorien
    String KATEGORIE_K;
    String MARKE_K;
    String NAME_K;

    String BARCODE_WERT1;
    String BARCODE_WERT2;

    //Variabeln aus EMPFANG_KATEGORIE
    String KATEGORIE;
    String MARKE;
    String NAME;
    String BARCODE;

    // TextView textView_kategorie = findViewById(R.id.tv_kategorie);
    // EditText editText_marke = findViewById(R.id.et_marke);
    // EditText editText_name = findViewById(R.id.et_name);





    // OnCreate Methode
    @override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_food1);



    // Titel in Actionbar
    setTitle("Lebensmittel erstellen");



    // Initialisierung
    btnNext=(TextView) findViewById(R.id.tv_btn_nf1_next);
    btnBarcodeNf=(Button) findViewById(R.id.btn_bcode_nf);
    btnNewfoodBack=(Button) findViewById(R.id.btn_NewFood1_Back);
    etbarcode=(EditText) findViewById(R.id.et_barcode);




    // Barcode scannen öffnet NewFoodBarcodeReaderActivity
    btnBarcodeNf.setOnClickListener(new View.OnClickListener() {
    @override
    public void onClick(View view) {
    startActivity(new Intent(NewFood1Activity.this, NewFoodBarcodeReaderActivity.class));
    }
    });

    // Empfängt Barcodewert aus NewFoodBarcodeReaderActivity, wenn BARCODEWERT1 leer dann
    // kein "null" in tv schreiben sonst BARCODEWERT1 schreiben
    Intent barcodewert = getIntent();

    String EMPFANG_BARCODEWERT1 = barcodewert.getStringExtra("EXTRA_BARCODE_READER");
    BARCODE_WERT1 = EMPFANG_BARCODEWERT1;

    if (BARCODE_WERT1 == null){
    etbarcode.setText("");
    }else {
    etbarcode.setText(""+BARCODE_WERT1);
    }



    //Variabeln aus EMPFANG_KATEGORIE
    TextView textView_kategorie = findViewById(R.id.tv_kategorie);
    EditText editText_marke = findViewById(R.id.et_marke);
    EditText editText_name = findViewById(R.id.et_name);

    // ET Deklaration
    EditText mMarke = findViewById(R.id.et_marke);
    EditText mName = findViewById(R.id.et_name);



    // Button TextView Kategorien zu LebensmittelKategorienAuswahl
    textView_kategorie.setOnClickListener(new View.OnClickListener() {
    @override
    public void onClick(View view) {


    // ET Deklaration
    EditText mMarke = findViewById(R.id.et_marke);
    EditText mName = findViewById(R.id.et_name);

    // Text von ET in Variablen speichern zum übergeben
    String MARKE = mMarke.getText().toString();
    String NAME = mName.getText().toString();

    // Variablen mit putExtra übergeben
    Intent intent = new Intent(NewFood1Activity.this, LebensmittelKategorienActivity.class);

    intent.putExtra("EXTRA_BARCODE",BARCODE_WERT1);
    intent.putExtra("EXTRA_MARKE",MARKE);
    intent.putExtra("EXTRA_NAME",NAME);

    startActivity(intent);
    }
    });






    // Intent von LebensmittelKategorieActivity empfangen
    Intent katzur = getIntent();

    String EMPFANG_KATEGORIE_K = katzur.getStringExtra("EXTRA_KATEGORIE_K");
    KATEGORIE = KATEGORIE_K;

    String EMPFANG_NAME_K = katzur.getStringExtra("EXTRA_NAME_K");
    NAME = EMPFANG_NAME_K;

    String EMPFANG_MARKE_K = katzur.getStringExtra("EXTRA_MARKE_K");
    MARKE = MARKE_K;

    String BARCODE_K = katzur.getStringExtra("EXTRA_BARCODE_K");
    BARCODE_WERT2 = BARCODE_K;




    // BOTTOM-NAV //////////////////////////////////////////////////////////////////////////////

    // Button Weiter zu NewFood2 mit putExtras
    btnNext.setOnClickListener(new View.OnClickListener() {
    @override
    public void onClick(View view) {

    // ET Deklaration
    EditText mMarke = findViewById(R.id.et_marke);
    EditText mName = findViewById(R.id.et_name);
    TextView mKategorie = findViewById(R.id.tv_kategorie);
    EditText mBarcode = findViewById(R.id.et_barcode);

    // Text von ET in Variablen speichern zum übergeben
    String MARKE = mMarke.getText().toString();
    String NAME = mName.getText().toString();
    String KATEGORIE = mKategorie.getText().toString();
    String BARCODE = mBarcode.getText().toString();


    // Variablen mit putExtra übergeben
    Intent intent = new Intent(NewFood1Activity.this, NewFood2Activity.class);

    intent.putExtra("EXTRA_MARKE",MARKE);
    intent.putExtra("EXTRA_NAME",NAME);
    intent.putExtra("EXTRA_KATEGORIE",KATEGORIE);
    intent.putExtra("EXTRA_BARCODE",BARCODE);

    startActivity(intent);
    }

    });


    // Button zurück zur vorherigen View
    btnNewfoodBack.setOnClickListener(new View.OnClickListener() {
    @override
    public void onClick(View v) {
    onBackPressed();
    }
    });



    }
    }
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Das ist die erste Activity auf welcher alle Daten gesammelt werden sollen.... schlussendlich wenn alles komplett wird noch einmal alles übergeben
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Das ist der BarcodeReader
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    package com.gh.goplus.NewFoodPackage;

    import androidx.appcompat.app.AppCompatActivity;

    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;
    import android.widget.Toast;

    import com.gh.goplus.MainActivity;
    import com.gh.goplus.R;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;


    // Class
    public class LebensmittelKategorienActivity extends AppCompatActivity {



    // Variablen
    // Array of strings for ListView Title
    String[] listviewTitle = new String[]{
    "Backzutaten", "Backwaren", "Brotaufstrich", "Fast Food",
    "Fisch & Fischprodukte", "Fleisch", "Gemüse", "Gerichte & Speisen",
    "Getränke (alkoholfrei)", "Getränke (alkoholhaltig)", "Getreideprodukte",
    "Gewürze & Kräuter", "Hülsenfrüchte", "Kartoffelprodukte", "Käse",
    "Kuchen & Torten", "Milch & Milcherzeugnisse", "Cerealien", "Nudeln & Teigwaren",
    "Nüsse & Samen", "Obst & Obstprodukte", "Öle & Fette", "Saucen & Dressing",
    "Sojaprodukte", "Süßwaren", "Verschiedenes",
    };


    int[] listviewImage = new int[]{
    R.drawable.lv_nf_kategorien_backzutaten, R.drawable.lv_nf_kategorien_backwaren, R.drawable.lv_nf_kategorien_brotaufstrich,
    R.drawable.lv_nf_kategorien_fastfood, R.drawable.lv_nf_kategorien_fisch, R.drawable.lv_nf_kategorien_fleisch,
    R.drawable.lv_nf_kategorien_gemuese, R.drawable.lv_nf_kategorien_speisen, R.drawable.lv_nf_kategorien_getraenke_alkoholfrei,
    R.drawable.lv_nf_kategorien_getraenke_alkoholhaltig, R.drawable.lv_nf_kategorien_getreideprodukte, R.drawable.lv_nf_kategorien_kraeuter,
    R.drawable.lv_nf_kategorien_shuelsenfruechte, R.drawable.lv_nf_kategorien_kartoffelprodukte, R.drawable.lv_nf_kategorien_kaese,
    R.drawable.lv_nf_kategorien_kuchen, R.drawable.lv_nf_kategorien_joghurt, R.drawable.lv_nf_kategorien_cerealien,
    R.drawable.lv_nf_kategorien_nudeln, R.drawable.lv_nf_kategorien_nuesse, R.drawable.lv_nf_kategorien_obst,
    R.drawable.lv_nf_kategorien_fette, R.drawable.lv_nf_kategorien_saucen, R.drawable.lv_nf_kategorien_soja,
    R.drawable.lv_nf_kategorien_suesswaren, R.drawable.lv_nf_kategorien_verschiedenes,

    };



    // Variablen für Empfang aus NewFood1
    String BARCODE_K;
    String MARKE_K;
    String NAME_K;



    // OnCreate Methode
    @override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lebensmittel_kategorien);


    // Titel in Actionbar
    setTitle("Kategorie auswählen");


    // Deklaration
    ListView lv_kategorie = (ListView) findViewById(R.id.lv_nf_kategorien);







    // Empfange Intent Barcode aus NewFood1 zum Zwischenspeichern
    Intent zwischenspeicher = getIntent();

    String EMPFANG_BARCODE = zwischenspeicher.getStringExtra("EXTRA_BARCODE");
    BARCODE_K = EMPFANG_BARCODE;

    String EMPFANG_MARKE = zwischenspeicher.getStringExtra("EXTRA_MARKE");
    MARKE_K = EMPFANG_MARKE;

    String EMPFANG_NAME = zwischenspeicher.getStringExtra("EXTRA_NAME");
    NAME_K = EMPFANG_NAME;










    // ListView Referenze
    List<HashMap<String, String>> aList = new ArrayList<HashMap<String, String>>();

    for (int i = 0; i < 26; i++) {
    HashMap<String, String> hm = new HashMap<String, String>();
    hm.put("listview_title", listviewTitle);

    hm.put("listview_image", Integer.toString(listviewImage));
    aList.add(hm);
    }

    String[] from = {"listview_image", "listview_title", "listview_discription"};
    int[] to = {R.id.listview_image, R.id.listview_item_title};

    SimpleAdapter simpleAdapter = new SimpleAdapter(getBaseContext(), aList, R.layout.custom_item_nf_kategorien, from, to);
    ListView androidListView = (ListView) findViewById(R.id.lv_nf_kategorien);
    androidListView.setAdapter(simpleAdapter);








    // Auswahl Kategrorie OnClickItem an NewFood1 übergeben
    lv_kategorie.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

    String KATEGORIE_K = listviewTitle;

    Intent intent = new Intent(LebensmittelKategorienActivity.this, NewFood1Activity.class);

    intent.putExtra("EXTRA_KATEGORIE_K",KATEGORIE_K);
    intent.putExtra("EXTRA_BARCODE_K",BARCODE_K);
    intent.putExtra("EXTRA_MARKE_K",MARKE_K);
    intent.putExtra("EXTRA_NAME_K",NAME_K);

    startActivity(intent);
    }
    });









    } // Schlussklammer OnCreate
    } // Schlussklammer Main

    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Und das die Kategorien, hier habe ich momentan versucht alles hin zu schicken per Intent und dann wieder zurück zu Activity A was so aber auch nicht funktioniert hat
     
  5. jogimuc, 06.08.2019 #5
    jogimuc

    jogimuc Erfahrenes Mitglied

    Hallo ohne den code jetzt gelesen zu haben hier noch etwas.

    Bei der ganzen Geschichte solltest du auch bedenken das wenn du eine Activity verläst also beendest. Sie auch aus dem Speicher gelöscht wird. Beim start mit Intent wird eine neue Instanz der Activity A erstellt. Deine Variablen sind dann natürlich weg.
     
  6. Ganriel741, 06.08.2019 #6
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    Hallo, erst einmal vielen Dank für deine Hinweise...

    Der erste hat mich schon einmal auf die richtige Spur gebracht, hoffe ich bzw. jetzt weiss ich wenigstens nach was ich googeln kann.

    Und der Zweite ist mega nützlich fürs Verständnis!
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    ich lese gerade ein Tutorial über Fragmente, denkst du das mich das weiter bringt?
     
  7. jogimuc, 06.08.2019 #7
    jogimuc

    jogimuc Erfahrenes Mitglied

    Also du empfängst in der A immer nur einen Intent mit getIntent()
    Es gibt nur den einen und den musst du unterscheiden wo er her kommt.
    In der gleichen Activity zwei variablen von getIntent ist das gleiche. Du musst auf einen der Keys Prüfen wo der her kommt.
     
  8. Ganriel741, 06.08.2019 #8
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    Wie prüfe ich das?

    beim "versenden" mit
    startActivityForResult(intent, KEY)?
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    und beim "empfangen"
    intent.getIntExtra(name, KEY)?
     
  9. jogimuc, 06.08.2019 #9
    jogimuc

    jogimuc Erfahrenes Mitglied

    If(intent.hasExtra("key") )
    Ist eines der Keys von der c enthalten machst du entsprechend weiter. In deinem Fall solte eine einfache if else reichen
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Du brauchst nur beim Empfang in der a prüfen.

    Key ist natürlich einer Deiner Keys die Du in der c benutzt solte klar sein.
    Bin am handy und da ist coden schlecht
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Bitte beim nechste mal für Code den dafür vorgesehen Block benutzen. Ist einfach übersichtlicher hier im Forum
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    So nun noch etwas da es hier wohl gelöst zu scheinen aussieht
    Wäre es nur richtig das andere Forum auch über diesen Erfolg und Hilfe zu informiren.

    Gleicher Name gleiche Frage.
     
    Ganriel741 bedankt sich.
  10. Ganriel741, 07.08.2019 #10
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    Hallo, und guten morgen!
    ich habe mir gestern nur noch ein paar Videos angeschaut und werde deine Tipps jetzt gleich umsetzen,
    sobald ich es gelöst habe wovon ich schwer ausgehe werde ich natürlich noch einen Post schreiben.

    nochmals vielen lieben Dank und einen schönen Tag noch!
     
  11. jogimuc, 07.08.2019 #11
    jogimuc

    jogimuc Erfahrenes Mitglied

    Ich würde sagen das du dich erstmal mit den Activitys und intents beschäftigst.
    Das auch ordentlich verstanden hast. Bevor du was neues machst.
    Das du da noch Lücken hast sieht man ja hier. Mache erst mal eins fertig.

    Wünsche dir viel Erfolg.
     
  12. Ganriel741, 07.08.2019 #12
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    Danke, ja das ist mir gestern auch bewusst geworden :1f605: ,
    weshalb ich mir dann auch noch Videos angeschaut und ein bisschen gelesen habe.

    Ich habe die Frage ja auch nicht ohne Grund als "Anfängerfrage" gestellt da ich wirklich noch komplett
    am Anfang stehe was Java betrifft.

    Ich dachte der beste weg um Java zu lernen ist "rein ins kalte Wasser", ist meiner Ansicht nach auch so
    da immer wieder neue Probleme auftauchen welche es zu lösen gibt und man sich so sehr gut
    in die ganze IDE und so weiter rein findet und es dann mit jedem neuen Problem einfacher wird.

    Allerdings habe ich den Intents bisher viel zu wenig Beachtung geschenkt bevor ich gemerkt habe das sie ein wesentlicher Baustein sein :1f602:
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    bin immer noch etwas am rumtrödeln weil ich dachte das z.B. bei Intent.putExtra("EXTRA_NAME", Variable) das EXTRA_.... der Key ist
    und ich nicht ganz verstehe warum ein Wert den ich in einem vorherigen Intentent geholt habe
    verschwindet wenn ich ihn im nächsten Intent wieder in eine Variable speichere und übergebe, genau so wie die anderen Variablen auch die ich ohne ein Intent geholt habe und bei denen alles problemlos funktioniert...

    im Moment stelle ich mir das so vor das der Code von Activity A beim zurückkehren wieder von Anfang an abgearbeitet wird und deshalb der Wert den ich vorher schon in einem anderen Intent an die Activity geschickt habe von der ich komme leer ist...

    ich muss es also hinbekommen das mein Code den ersten Intent überspringt wenn ich auch Activity C komme wenn ich es richtig verstanden habe oder?
     
  13. swa00, 07.08.2019 #13
    swa00

    swa00 Moderator Team-Mitglied

    Hallo Ganriel741,

    und herzlichst willkommen im Forum.

    @jogimuc : Sorry Jörg, dass ich mich einklinke ....

    Nun , ich denke , du bist mit deinen Intents schon einen Schritt zu weit, denn dir fehlt dein Basiswissen der OOP Programmierung
    unter native Java und Android. Auch gibt es keine statischen Variablen, so wie man sie gewöhnlich unter C/C++ her kennt.

    (Grausame) Videos können Dir dieses Basiswissen nicht vermitteln , sondern setzen mehr oder weniger Dieses voraus.
    Du wirst also um eine "Lernsession" nicht drumrum kommen, sonst verstehst du den Rest auch nicht .

    Egal wieviel Mühe wir uns auch hier geben mögen :)


    Leider auch nein .....
     
    Zuletzt bearbeitet: 07.08.2019
  14. Ganriel741, 07.08.2019 #14
    Ganriel741

    Ganriel741 Threadstarter Neues Mitglied

    Ja, das mit den statischen Variablen wie ich sie von C kenne, war vermutlich der erste große Denkfehler der mich die vergangenen 2 Tage an einem vorankommen gehindert hat...

    könnt ihr mir evtl. eine gute kostenlose Website und Buch empfehlen?
    Ich habe mir gerade Java ist auch eine Insel angeschaut, kennt das zufällig einer?
     
  15. swa00, 07.08.2019 #15
    swa00

    swa00 Moderator Team-Mitglied

    Schau mal hier :)

    [LEITFADEN] Der Einstieg in die Android Programmierung mit Android Studio


    [NACHTRAG]

    Und du musst dich unbedingt in die Eigenschaften von Android einlesen .
    Android ist ein dynamisches System und kann Dir ohne Vorwarnung Klassen und Variablen klauen
    , wenn es der Meinung ist , dass diese nicht mehr benötigt werden.

    Grund hierzu ist , dass es sich um ein mobiles System handelt und auch explizit so entwickelt wurde,

    All das musst du als Entwickler berücksichtigen und abfangen.
    Dazu gibt es Lesestoff wie "GarbageCollector" und "Lifecycle"

    Overview of memory management | Android Developers

    Understand the Activity Lifecycle | Android Developers

    Erst wenn das Wissen der "Insel", Memory und Cycle sitzt , kannst du oben wieder weitermachen.
     
    Zuletzt bearbeitet: 07.08.2019
    Ganriel741 und jogimuc haben sich bedankt.
  16. jogimuc, 07.08.2019 #16
    jogimuc

    jogimuc Erfahrenes Mitglied

    Auch ich habe dir gesagt das wenn du eine activity mittels intent aufrufst. Eine neue Instanz erstellt wird. Es wird also die Activity neu gestartet und auch die onceate wieder durchlaufen.
    Du kannst da keine Werte der alten Instanz erhalten.

    Den ersten intent überspringen du denkst hier falsch. Ich sagte dir bereits die Activity startet neu und empfängt den Intent. Die bekommt nur einen welcher Besser gesagt von wem der ist und was da als Inhalt drinn ist weißt du vorher nicht.
    Beide Variablen vom intend haben den gleichen Inhalt und befinden sich beide in der oncreate.
    Deshalb prüfe welche Keys in dem putextra sind. Wenn zb nicht das EXTRA_NAME enthalten ist kannst du davon ausgehen das er von der b activity kommt. Wenn es vorhanden ist kommt er mit hoher Wahrscheinlichkeit von c. Das geht da du nur die zwei hast die den Intent schicken.
    Wenn garnicht im extra ist würde die app wohl vom System neu gestartet.

    Das solltest du mit hasextra prüfen. Von mir aus kannst so auch deine Code teile überspringen ist aber kein guter Stiel.

    Wenn du Parameter aus der App beim beenden Speichen willst dann schaue dir SharedPreferences mal an.
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Du weißt nicht woher der Intent kommt wer die a activity aufgerufen hat. Deshalb prüfen. Was in dem extra ist. Denn deine activitys geben unterschiedliche Werte Keys in den extas mit.
     
    Ganriel741 bedankt sich.
  17. swa00, 07.08.2019 #17
    swa00

    swa00 Moderator Team-Mitglied

Die Seite wird geladen...
Ähnliche Themen Forum Datum
Android Java Recycler View Datum Tipps und Anleitungen zur Code-Entwicklung 02.06.2019
Status des Themas:
Es sind keine weiteren Antworten möglich.
Du betrachtest das Thema "Daten von mehreren Views auf einer View sammeln" im Forum "Tipps und Anleitungen zur Code-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.