String aus anderer Methode abfragen

  • Hallo,


    die "App" soll ein paar Daten abfragen und diese durch das Drücken des Button´s als Toast anzeigen. Soweit funktioniert das meiste, nur der Zugiff auf das Eingegebene nicht.
    Eine Idee war, dass dem String test1 die resID des XML-Strings zugewiesen und diese durch das Eingegebene vom Nutzer überschrieben wird (test2). Den überschriebenen String test2 wollte ich wiederum über die gleichgebliebene ResID im Toast ausgeben. Hierbei wird mir aber nur der Text, des ursrünglichen XML-Strings angezeigt.
    Ich würde mich freuen, wenn mir jemand bei dieser Kleinigkeit helfen könnte.


    Danke


  • Also ich verstehe nicht ganz was du erreichen möchtest, vielleicht kannst du es nochmal etwas detaillierter schildern.


    Du hast also 3 Strings (test1, test2, test3), 2 EditText (editAntwort1, editAntwort2)


    test2 ist immer gleich wie test1, du überschreibst also immer deine Antwort1 vom EditText.
    zudem steht in deinem test1 und später dann auch in deinem test2 immer der XML String den du mit getString holst, wieso fragst du diesen also nochmal mit getString im Toast ab, wenn er doch schon in 2 Variablen gespeichert ist ?


    Dein eigentliches Problem ist, so vermute ich, das du nicht bedenkst das der Code in der Methode onCreate() nur einmal beim erstellen der Activity/Fragment ausgeführt wird. Was du haben willst sieht glaube ich so aus...



    Java
    Toast.makeText(this,"Du bist " + getString(0x7f050003) + " und wohnst in " + editAntwort1.getText().toString() + " und dein Name ist " + editAntwort2.getText().toString(),Toast.LENGTH_LONG).show();

    So wird jedes mal der aktuelle Wert aus deinen EditText´s abgefragt wenn du den Button drückst.

  • Hallo,


    der User soll zwei Texteingaben tätigen und diese sollen durch das Drücken einen Buttons durch einen Toast angezeigt werden. Mein Hauptproblem liegt darin, dass ich in der onTouch-Methode nicht auf die Variablen, in denen der eingegebene Text gespeichert ist, zugreifen kann.


    Die "getString(0x7f050003)" -Anweisung war ein Versuch, den Stringtext der XML-Datei zu überschreiben und den überschriebenen Text wiederrum im Toast abrufen. Das Zugriffsproblem wollte ich so umgehen, aber leider wird nichts in der XML überschrieben :(


    Edit:

    Ich habe den Code etwas umgeschrieben, damit mein Problem leichter ersichtlich ist. Es soll der String antwort1 und antwort2 der Main-Methode mit den Werten aus der onCreate-Methode überschrieben werden.
    Bis jetzt klappt das Überschreiben nicht und es gibt leere Strings :(

  • EditText text1 = (EditText) findViewById(R.id.edittext1)
    EditText text2 = (EditText) findViewById(R.id.edittext2)
    Button button = (Button) findViewById(R.id.button)


    button.setOnClickListener(new onClickListener() {
    @Override
    public void onClick(View view) {
    Toast.makeText(
    context,
    "Hier der Text aus text1: " + text1.getText().toString() + ", hier der Text aus text2: " + text2.getText().toString(),.
    Toast.LENGTH_SHORT
    ).show();
    }
    }


    ist nur pseudocode, daher stimmt nicht zu 100%, habs nur aus dem kopf getippt. Nun zur Frage: wieso genau kannst du nicht auf die werte der EditTexte zugreifen?

  • Hey,


    es funktioniert :)


    Danke an ChampS, der Anonyme OnClickListener war genau der richtige Gedanke.
    Hier der fertige Code:


    Kann mir bitte noch jemand verraten, warum der Toast als Context die Activity zugewiesen bekommen musste? ("This" alleine funktionierte nicht)


    Code
    Toast.makeText(ErfragenActivity.this,"Du bist "+editAntwort1.getText().toString()+" und wohnst in "+editAntwort2.getText().toString()+".",Toast.LENGTH_LONG).show();

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!