2016-12-29 3 views
-8

Nach Googeling viel habe ich immer noch nicht die Antwort gefunden, die ich suche .. Hoffentlich können Sie mir in die richtige Richtung zeigen.Android Studio (Java) Funktion ersetzen

Derzeit habe ich eine funktionierende App mit Android Studio, die es mir erlaubt, ein Wort von Benutzereingaben zu einem anderen Wort zu ersetzen, im Grunde eine Funktion, die sonst funktioniert. Dies erlaubt mir jedoch nicht, einen ganzen Satz zu ersetzen.

Was ich zu erreichen versuche, ist:

ich ein Textfeld haben wollen, wo ein Benutzer kann einen Text.

Zum Beispiel gibt der Benutzer: „Hallo, ich bin John Doe und Ich mag Schokolade“

der Benutzer die seinen Eintrag mit einer Sendetaste einreicht. Ich möchte dann eine Funktion, die nur ein bestimmtes Wort in seiner Eingabe ersetzt.

Zum Beispiel möchte ich eine Funktion, die das Wort "Schokolade" durch "Milch" ersetzt.

Damit der Benutzer eine Rückkehr vom System erhält, sagend: "Hallo, ich bin John Doe und ich mag Milch". Aber ich möchte auch, dass Wörter zwischen Wörtern ausgetauscht werden. Zum Beispiel möchte ich auch die Funktion den Namen "John" durch "Mary" ersetzen.

Welche Funktion kann ich verwenden, um dieses Szenario zu erreichen?

Danke fürs Lesen.

Glenn

+0

Ich habe keinen Code zu liefern. Es ist eine Frage über eine Funktion. Ich bitte dich nicht, meinen Code zu "reparieren". Ich bitte dich, mich in die richtige Richtung zu schieben, damit ich es selbst beheben kann. – Glenn

+3

[String.replace] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replace (java.lang.CharSequence,% 20java.lang.CharSequence)) – jhamon

+0

"Im Grunde eine if-else-Funktion" und Sie haben dann etwas Code. Posten Sie, was Sie haben. – weston

Antwort

0

In Android, in einem Layout Sie ein EditText einfügen, dann ist es, dass Textfeld Sie wollte, wo Sie Text hinein schreiben kann und auch Änderungen in Text hören, so dass Sie diese Manipulationen tun können Sie sprachen.

erstellen TextWatcher und fügen Sie es dem EditText mit addTextChangedListener (TextWatcher Variable)

new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
      } 

      @Override 
      public void afterTextChanged(Editable s) { 
      } 
     }; 

Fügen Sie Ihren Text Manipulation Funktionalität innerhalb dieser Rückrufe, hoffen, das ist eine gute Richtung für Sie

TIP : Erstellen Sie Ihre eigene Klasse für ein benutzerdefiniertes Textfeld und extend von EditText, jetzt überall dort, wo Sie diese benutzerdefinierte Ansicht platzieren, haben Sie die Textmanipulationsfunktionalität, you cou ld addTextChangedListener von innerhalb dieser Klasse.

Verwandte Themen