Android Daten von "Activity A" nach "Activity B" umleiten?

jmar83

jmar83

Top Contributor
Hallo zusammen

Im Internet (insbesondere bei StackOverflow) findet man dazu wieder mal lles mögliche - nur scheint davon irgendwie nix zu funktionieren.

Es geht um um einen Konfigurations-Screen (im Backend mit Kennwortschutz) mit 8 Textfeldern. Da dort lange und komplizierte Sachen reinmüssen, habe ich ein QR-Code-Bibliothek zu Hilfe genommen. Dann kann man die langen Werte auf irgendeiner QR-Code-Webseite eintragen und dann das QR-Code-Bild darauf generieren. Das kann man dann wiederum auf der Konfig-Seite (jedes Textfeld dort hat nen quadratischen Button auf der rechten Seite mit dem Text "QR" drauf)

Die Konfig-Seite heisst "SettingsActivity", die Seite wo der QR-Code-Reader aktiv wird (Bild der Kamera, welches erhalten bleibt bis ein QR-Code erkannt wird - anderenfalls kann man auch den (Hardware)-Back-Button der Android-Geräte verwenden falls man wieder zurück möchte - aus welchem Grund auch immer.

Die QR-Code-Erkennungs-Seite heisst "ScanActivity"...


Nun habe ich auf der Konfig-Seite für jeden "QR"-Code-Button-Klick es so gemacht, dass dabei die ID des neben dran liegenden Textfelds mit gegeben wird:


Code:
private static volatile TextView mCurrentFieldForQRCodeReader = null;

public TextView getCurrentFieldForQRCodeReader()
{
    return mCurrentFieldForQRCodeReader;
}

public void buttonQrAffiliateKey_click(final TextView caView)
{
    SettingsActivity.mCurrentFieldForQRCodeReader = caView;
    final Intent clIntent = new Intent(this.mActivity.getApplicationContext(), ScanActivity.setPreviousActivity(mActivity));
    this.startActivity(clIntent);
}

@Override
protected void onCreate(final Bundle savedInstanceState) {
findViewById(R.id.activitySettingsButtonQrAffiliateKey).setOnClickListener(caView -> buttonQrAffiliateKey_click(findViewById(R.id.activitySettingsTextFieldAffiliateKey)));
...
...
...
}

(Aber jetzt bitte nicht Sachen wie `ScanActivity.setPreviousActivity(mActivity)` thematisieren - da läuft nämlich auf das (u.A.) GENAU GLEICHE hinaus wie ScanActivity.class...)


In der "ScanActivity" geht's dann so:

Code:
private ScanCallback callback = new ScanCallback() {
    @Override
    public void onScanResult(String content) {
        final TextView clTextView = ((SettingsActivity)mPreviousActivity).getCurrentFieldForQRCodeReader();
        ScanActivityHandler.setTextFieldId(clTextView.getId());
        ScanActivityHandler.setTextFieldValue(content);
        final Intent clIntent = new Intent(mActivity.getApplicationContext(), SettingsActivity.setPreviousActivity(mActivity));
        mActivity.startActivity(clIntent);
    }
};

(Und nun sollte auch klar werden, für was `ScanActivity.setPreviousActivity(mActivity)` war... ;-))


ScanActivityHandler.java sieht aktuell so aus:

Code:
public abstract class ScanActivityHandler {

    private static volatile int mTextFieldId = 0;

    private static volatile String mTextFieldValue = null;

    private ScanActivityHandler()
    {
        super();
    }

    static
    {

    }

    public static int getTextFieldId()
    {
        return ScanActivityHandler.mTextFieldId;
    }

    public static String getTextFieldValue()
    {
        return ScanActivityHandler.mTextFieldValue;
    }

    public static void setTextFieldId(final int caTextField)
    {
        ScanActivityHandler.mTextFieldId = caTextField;
    }

    public static void setTextFieldValue(final String caTextFieldValue)
    {
        ScanActivityHandler.mTextFieldValue = caTextFieldValue;
    }
}


Und das wird dann auf der Konfig-Seite wieder ausgewertet:

Code:
@Override
protected void onCreate(final Bundle savedInstanceState) {

...
...
...

final String clTextFieldValue = ScanActivityHandler.getTextFieldValue();
    final int clTextFieldId = ScanActivityHandler.getTextFieldId();

    if(!(clTextFieldValue == null || clTextFieldValue.intern() == "" || clTextFieldId == 0))
    {
        // AndroidDialogProxy.showAlertDialog("test", "test", mActivity);
        ((TextView) findViewById(clTextFieldId)).setText(clTextFieldValue);
    }
}


Funktioniert soweit "wie am Schnürchen", ist aber nicht Android-Standard. (Zugegeben hasse ich solches Framework-Zeugs quasi "wie die Pest", ich interessiere mich eher für Algorithmen, also quasi Programmieren auf rein logisch-mathematischer Ebene. Also so Zeugs was direkt "vom Kopf in den Computer" reingeht, wenn ihr versteht was ich meine. ;-))


Also bei StackOverflow findet man dazu alles Mögliche:

- "Extras" hinzufügen über den "Intent" wenn man zurück will zur vorherigen Activity
- Diese "Extras" in der onCreate(...) ODER onActivityResult(...) abfangen. (WTF, was nun von beidem?!?)
- Bei der startActivity(...) zusätzlich einen int mitgeben, damit der in der onActivityResult(...) bei der Ziel-Activity abgefangen und demnach unterschieden werden kann. -> NIX GEHT: onActivityResult(...) wird überhauopt nie aufgerufen damit - ob nun mit oder ohne zusätzlichen int!!!

Das die onCreate(...) aufgerufen wird, ist eh klar. Deshalb meine Lösung des Problems.

Ich bin ehrlich gesagt nur noch verwirrt...!!

Meine "Lösung" ist wenigstens logisch nachvollziehbar, ganz im Ggs. zum Android-Kram.

Aber kann mir vielleicht doch noch jemand sagen, wie man es Android-Kram-konform macht...? ;-)
 
Zuletzt bearbeitet von einem Moderator:
jmar83

jmar83

Top Contributor
"NIX GEHT DAMIT: onActivityResult(...) wird NIE aufgerufen damit!!! "

-> Frage mich wie das gehen sollte, die vorherrige Activity ist ja eh tot oder inaktiv oder "schlafend" oder was auch immer während dessen.
 
jmar83

jmar83

Top Contributor
"Das was du da machst sieht zumindest komisch aus... "

Da wusste ich mir eben ausnahmsweise mal zu helfen. Aber wirklich seeeeeeehr ausnahmsweise!!
 
jmar83

jmar83

Top Contributor
@admin: Bitte nun endlich den Package-Namen entfernen (!!!) oder gerade den ganzen Beitrag, habe schon eine Meldung zum Beitrag abgesendet welche aber leider unbeantwortet blieb.

-> Das nächte mal wird es ein eingeschriebener Brief sein!!
 
Flown

Flown

Administrator
Mitarbeiter
@jmar83 Also der Packagename wurde schon rauseditiert.

Ich meine du bittest um Hilfe und dann wird man angpöbelt, dass man etwas funktionierenden Code erfragt?
 
jmar83

jmar83

Top Contributor
Hallo zusammen

Muss mich entschuldigen.

Beide Sachen sind im Prinzip mein Fehler:

- Das versehentliche copy/paste des Package-Namens!
-> Allerdings konnte ich den Beitrag nicht mehr selbst bearbeiten nach einer gewissen Zeit. Aber das wird wohl schon seine Gründe haben, warum dem so sei...(?)

- Meine Reklamation betr. nicht-Entfernung davon!
-> Habe einfach bei Google und Bing nach den entsprechenden Begriffen gesucht und diesen haben bei der URL https://www.java-forum.org/thema/daten-von-activity-a-nach-activity-b-umleiten.189052/#post-1229379 den indexierten Eintrag noch nicht aktualisiert. Und gleichzeitig wurde ich aber nicht darüber informiert (habe also keine Bestätigung erhalten) dass was entfernt wurde.


"Was soll diese plumpe Drohung??"

...tut mir leid, lieber Klaus, aber wenn du in sowas ne Drohung hineininterpretierst dann weiss ich auch nicht mehr weiter. (???) Ein eingeschriebener ist meines Erachtens dafür vorgesehen dass man eine WIRKLICHE Bestätigung hat dass die Mitteilung beim Empfänger angekommen ist resp. sich in den Händen von diesem befindet.


"Beiträge werden eigentlich generell nicht gelöscht!"

Nicht mal die eigenen, wenn ein Forenuser dies als notwendig erachtet? Dass Beiträge von anderen nur gelöscht werden wenn rechtlich gesehen ein stichhaltiger Grund dazu da ist, dann ist mir das absolut verständlich. Aber die eigenen...? Hmmm...??


Grüsse, Jan
 
jmar83

jmar83

Top Contributor
"Ich meine du bittest um Hilfe und dann wird man angpöbelt, dass man etwas funktionierenden Code erfragt?"

Ich will hier gar niemanden anpöbeln... aber wenn ich den Foren-Admin-/Besitzer oder irgendwelche Moderatoren erfrage ob was von mir gelöscht werden kann, so erachte ich dies nicht als zuviel verlangt.

(Na ja, ich weiss: "C'est le ton qui fait la musique" ... ;-))
 
Flown

Flown

Administrator
Mitarbeiter
Ich weiß das geschriebene Sachen sehr leicht missinterpretiert werden können.

Ich glaub ich hab 2 mal deine Beiträge editiert und den meisten ist es egal, ob sie benachrichtigt werden oder nicht. Ich werde es in Zukunft auf "Benachrichtigen" umstellen.
 
jmar83

jmar83

Top Contributor
Alles klar, vielen Dank! :)

Dann werde ich mich in Zukunft per PN direkt an dich wenden falls wieder mal was wäre....
 
Flown

Flown

Administrator
Mitarbeiter
Ich meinte es gibt eine Option beim Bearbeiten von Meldungen, wo der Benutzer informiert werden sollte. Ich werde das in Zukunft nutzen.
Bitte beim "Report" bleiben.
 
jmar83

jmar83

Top Contributor
Eine kurze Benachrichtigung / Bestätigung ist immer gut!

An sowas wird heutzutage oft Zeit "gespart", aber später wird einem dann bewusst dass sich die paar vermeintlich eingesparten Sekunden eben doch nicht wirklich lohnen... ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Unbekannte Menge von Daten (Strings oder Ints) an Activity übergeben Android & Cross-Platform Mobile Apps 0
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
M Daten vom Brustgurt bekommen? Android & Cross-Platform Mobile Apps 3
P Daten bzw Objekte auf das Handy lokal speichern Android & Cross-Platform Mobile Apps 29
W Android Browser startet immer, bevor die Daten dafür geholt wurden Android & Cross-Platform Mobile Apps 15
J Android Server-Login Daten in der App sicherer hinterlegen? Android & Cross-Platform Mobile Apps 7
T Firestore Daten in Spinner Android & Cross-Platform Mobile Apps 0
L Android Daten von Webseite runterladen, die mit HTTP-Authentifizierung gesichert ist Android & Cross-Platform Mobile Apps 5
B Accelerometer daten umwandeln Android & Cross-Platform Mobile Apps 41
S Android Apk Daten auslesen Android & Cross-Platform Mobile Apps 3
G Android Daten in einer Datenbank speichern Android & Cross-Platform Mobile Apps 1
ATZENPOWER Android Probleme mit mobilen Daten via lte Android & Cross-Platform Mobile Apps 10
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11
A Android Daten in der Cloud speichern (Google) Android & Cross-Platform Mobile Apps 1
K Android SQLite Query "WHERE _id in (X, Y, Z)" keine Daten Android & Cross-Platform Mobile Apps 6
M Anzeigen der Daten dauert zu lange - Progressdialog? Android & Cross-Platform Mobile Apps 5
K Android DialogFragment mit SimpleCursorAdapter: Auf Daten zugreifen? Android & Cross-Platform Mobile Apps 4
S Daten aus Android Gerät auslesen Android & Cross-Platform Mobile Apps 3
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
B Alle Daten gehen verloren, wenn die Displaysperre aktiviert wird? Android & Cross-Platform Mobile Apps 21
M Daten zwischen mehreren Activities Android & Cross-Platform Mobile Apps 2
M Daten zwischen Activities übergeben Android & Cross-Platform Mobile Apps 7
G Wie gebe ich dem DrawView die Daten mit? Android & Cross-Platform Mobile Apps 2
V App Daten in Java Applikation Android & Cross-Platform Mobile Apps 3
D Android Daten verwalten Android & Cross-Platform Mobile Apps 2
S Android binäre Daten zwischen Android und einem Java-Server Android & Cross-Platform Mobile Apps 5
M Android Von Smartphone auf Daten von Server zugreifen Android & Cross-Platform Mobile Apps 2
C Android Listen/Daten aus der SQLLite Datenbank darstellen Android & Cross-Platform Mobile Apps 2
L Android Einlesen und rausschreiben von Daten auf SD Android & Cross-Platform Mobile Apps 3
U Android Daten dauerhaft speichern? Android & Cross-Platform Mobile Apps 2
P Java ME benutzer daten speichern Android & Cross-Platform Mobile Apps 5
7 GPS-Daten auslesen auf Samsung SGH I900 Omnia Android & Cross-Platform Mobile Apps 3
X RMS - Will die Daten auf den PC kopieren Android & Cross-Platform Mobile Apps 3
B Daten in *.txt schreiben Android & Cross-Platform Mobile Apps 7
R Lesen und schreiben von Daten. Android & Cross-Platform Mobile Apps 2
K XDA Orbit: Auslesen der GPS Daten mit J2ME Android & Cross-Platform Mobile Apps 2
M Daten aus Jad-file auslesen Android & Cross-Platform Mobile Apps 2
O eingehende Daten speichern Android & Cross-Platform Mobile Apps 2
L Android Lockscreen-Sperrmuster activity verwenden Android & Cross-Platform Mobile Apps 1
J Android App stürzt ab wenn neue activity gestartet Android & Cross-Platform Mobile Apps 6
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
P Android Android-App Crash - Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
S Neue Activity lässt sich nicht starten Android & Cross-Platform Mobile Apps 28
B Android Activity nach gedrückte Returntaste weiterlaufen lassen Android & Cross-Platform Mobile Apps 2
J Probleme mit ViewPager und Activity Android & Cross-Platform Mobile Apps 1
B Android In einem View der ersten Activity zweite anzeigen Android & Cross-Platform Mobile Apps 2
G Accelerometer ohne Activity Android & Cross-Platform Mobile Apps 8
J Android BroadcastHandler extends BroadcastReceiver; auf Activity zugreifen? Android & Cross-Platform Mobile Apps 5
K Android Übergeordnete Activity herausfinden? Android & Cross-Platform Mobile Apps 7
W Android Designfrage / Layout / Activity / Fragments Android & Cross-Platform Mobile Apps 2
B Login Activity Android & Cross-Platform Mobile Apps 1
M Android Suche Activity/View Namen Android & Cross-Platform Mobile Apps 1
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
S Android Eclipse erstellt keine main Activity Android & Cross-Platform Mobile Apps 4
B java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
K Android Activity for result aus Dialog Android & Cross-Platform Mobile Apps 1
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
D Android Activity mit mehreren Views "spliten" Android & Cross-Platform Mobile Apps 10
G Activity-Wechsel bitte ohne Notification Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
D Android Neue Activity im TabWidget laden Android & Cross-Platform Mobile Apps 8
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
T Android Activity finished testen Android & Cross-Platform Mobile Apps 5
T Activity / Application fundamentals Android & Cross-Platform Mobile Apps 4
M Activity wechseln aus List View mit Android & Cross-Platform Mobile Apps 2
G extends Activity für Berechnungen? Android & Cross-Platform Mobile Apps 7
G selbes Menü auf jeder Activity Android & Cross-Platform Mobile Apps 4
C Activity ohne Aktion starten Android & Cross-Platform Mobile Apps 8
C Android Kommunikation zwischen Service und Activity Android & Cross-Platform Mobile Apps 8
Maxim6394 [ Android ] Activity ändern Android & Cross-Platform Mobile Apps 9
A Activity Intent 'source not found' Android & Cross-Platform Mobile Apps 4
A Android Activity Variablen-Initialisierung Android & Cross-Platform Mobile Apps 8
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
W Standard Gallery Activity? Android & Cross-Platform Mobile Apps 22
schlingel Android: Overlay in Activity Android & Cross-Platform Mobile Apps 3
G Activity beenden Android & Cross-Platform Mobile Apps 2
AGW App schließt nach 2 Sekunden Android & Cross-Platform Mobile Apps 2
A Android-Studio: 2. Layout nach kurzer Zeit aufzeigen Android & Cross-Platform Mobile Apps 2
B Profilpic wird nach anmeldung nicht angezeigt. Android & Cross-Platform Mobile Apps 2
J BLOB nach dem Download unbrauchbar Android & Cross-Platform Mobile Apps 0
B App schließt nach Start. Android & Cross-Platform Mobile Apps 12
J Android Nach Appsprachenänderung die Systemsprache ermitteln Android & Cross-Platform Mobile Apps 2
G App wird nach Installation auf Smartphone beendet Android & Cross-Platform Mobile Apps 1
B Android wie kann ich in einer xml nach bestimme item suchen (DOM) Android & Cross-Platform Mobile Apps 7
Fischkralle Android Nach Textdateien in Ordner suchen Android & Cross-Platform Mobile Apps 5
V Android Fehlermeldung beim Öffnen von Eclipse nach Installation der Android Erweiterung Android & Cross-Platform Mobile Apps 4
T Android Nach Buttonclick neu laden Android & Cross-Platform Mobile Apps 3
B Android ringProgressDialog nach Erfolg Button einfärben Android & Cross-Platform Mobile Apps 2
N PriceScannerApp: warum wird nach dem Scannen Display gleich schwarz? Android & Cross-Platform Mobile Apps 4
L Android Bildschirm bleibt dunkel nach neustarten der App nach betätigen des Home-Buttons Android & Cross-Platform Mobile Apps 3
N Android EditText.setError() funktioniert nicht nach Rotation Android & Cross-Platform Mobile Apps 1
B Android Button erstellen nach Vorlage Android & Cross-Platform Mobile Apps 4
L Android Button mit Pfeil nach rechts Android & Cross-Platform Mobile Apps 1
M Android App startet nach Tastensperre neu Android & Cross-Platform Mobile Apps 3
P Android Nach Animation Layout auf alten Platz Android & Cross-Platform Mobile Apps 3
G Werteübergabe nach unbestimmter Zeit Android & Cross-Platform Mobile Apps 28
A Fehlermeldung nach Neuinstallation von Eclipse/bestehenden Projekten... Android & Cross-Platform Mobile Apps 2
E Android App stürzt nach Modifizierung ab Android & Cross-Platform Mobile Apps 2
N Textview macht immer nach einem Beistrich einen Abstand Android & Cross-Platform Mobile Apps 6
K Apps durchsuchen nach verwendeter Methode Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Anzeige


Oben