Android EditText Multiline funktioniert nicht wie es sollte
Ich bin ziemlich verzweifelt über diese Funktion.
Ich habe versucht so ziemlich alles, was es zu suchen, um diese EditTexts multiline aktiviert,
aber Sie halten zu gehen in einer einzigen Zeile scrollen den gesamten EditText mit ihm.
Wie schwer kann es sein zu stoppen, am Ende der Grenze des EditText und zu bewegen, um die nächste Zeile?
Habe ich diese Aktivität mit einem EditText und 2 Tasten. Eine dieser Tasten fügt eine VORGEGEBENE Zeile text in die EditText. Der andere setzt die EditText ' s text in irgendeiner form-Objekt, dass ich später in der app.
Jedoch kann ich nicht diese multiline-Funktion zu arbeiten.. ich habe versucht, die Begrenzung der Größe. Einstellung der multiline-flag. Deaktivieren von "singleline". Geben Linien, und minLines eine Zufallszahl (10).
Deaktivieren horizontalscroll auf die EditText. Aber nichts funktioniert....
Kann mir jemand sagen, was zum Teufel ich falsch mache? Und wie kann ich dieses Problem beheben schrecklichen Greuel eines EditText.
Dies ist, wie mein Albtraum jetzt aussieht.
<EditText
android:id="@+id/callofedittext"
android:layout_width="wrap_content"
android:inputType="textMultiLine"
android:width="300dp"
android:minLines="10"
android:layout_height="wrap_content"
android:gravity="top|left"
android:textColor="@color/textWhite"
android:background="@color/textBlack"
android:paddingLeft="3dp"
android:singleLine="false"
android:scrollHorizontally="false"
>
<requestFocus />
</EditText>
Es verfolgt meine Träume...
EDIT: > Licht am Ende des Tunnels.
Während ich die Fokussierung auf die xml.. Ein sauberes, neues Projekt von mir darauf hingewiesen, dass EditText textMessage = (EditText)findViewById(R.id.callofedittext); textMessage.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
ist die Ursache für meine Probleme. Nicht speziell die Eigenschaften in der xml.
- Haben Sie versucht, die Einstellung für android:inputType="textMultiline" ?
- Ja das habe ich. Ich werde es zum Beispiel um Klärung.
- Wenn Sie drücken Sie die EINGABETASTE auf der Tastatur, wird es lassen Sie Sie gehen, um die nächste Zeile? Wenn das funktioniert, könnte Ihr layout_width="wrap_content". Wenn Sie versuchen, die Einstellung, die auf fill_parent oder einen bestimmten dp-Wert, könnte es dazu die Zeile umbrochen wird. Ihre Nutzung von android:Breite sieht falsch. stackoverflow.com/questions/11181971/...
- Wenn ich drücken Sie die enter-Taste der Tastatur verschwindet und nichts weiter passiert. Ändern wrap_content zu allen anderen Optionen nicht helfen. Auch die Verwendung der Breite ist, um sicherzustellen, dass wir die genaue Breite des EditText (oder ein anderes element für diese Angelegenheit). Keine dieser arbeiten, obwohl es logisch wäre, für Sie zu arbeiten, in gewisser Weise.
- Ich bin ein bisschen ratlos, dann. Vielleicht sollten Sie entfernen alle Eigenschaften, die Sie können, um zu sehen, ob es wie erwartet funktioniert. Wenn dem so ist, re-vorstellen.
- Willkommen im Alptraum ;), ich weiß nur nicht, warum es nicht funktioniert. Es legt einfach den gesamten text in einer einzigen Zeile, scrollt unendlich auf der rechten Seite in den Prozess.., Was layout, das ich anwenden, was auch immer Eigenschaft, die ich hinzufügen/Bearbeiten/löschen.
- Ich habe ein neues Projekt zu starten nur jetzt. Mit nur ein EditText und begann mit einer sauberen Weste.. Irgendwie hab ich es zur Arbeit. Ich bin jetzt die Einführung neuer Elemente, die ähnlich sind zu jenen, die ich brauche für das eigentliche Projekt.
- Halten Sie mich auf dem Laufenden, und senden Sie eine Antwort für Ihre Frage, wenn Sie es herausfinden, bitte.
- Ok, dachte ich, auf den Weg, um die Schraube mit den EditTexts. Ich wollte, um davon zu profitieren, jeder Satz in diesem multiline EditText (was ich denke ist eine ziemlich vernünftige Anfrage). Und ich habe irgendwo gelesen, das sollte ich hinzufügen-die Fahnen programmatisch wie dieser haben beide multilines und Kapitalisierung. "EditText Kurzmitteilung = (EditText)findViewById(R. id.callofedittext); Kurzmitteilung.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);" Aber aparantly diese Schrauben bis alles.... Warum ist die Kapitalisierung nicht nur standard für die EditTexts?
- Nicht sicher ist jedoch, dass Ihre programmatischen setInputType ist falsch. Ihnen fehlt der text Klasse. Versuchen Sie Kurzmitteilung.setInputType( InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
- Mann.... das funktioniert.... Wie haben Sie kommen mit diesem?
- Ich habe buchstäblich gerade, hatte das problem vor 2 Tagen, und war heftig meinen Kopf für eine Weile. Ich werde zeigen eine ausführliche Antwort/Erklärung.
- Sie haben meine Dankbarkeit. Ich bearbeitet meine Frage passen meine problem mehr. Das habe ich dann irgendwie versucht, dieses Problem zu beheben für ein paar Wochen jetzt (da es nur ein side-project von meinem eigenen) und konnte nicht get it done. Ich freue mich zu Lesen, warum diese zusätzliche flag ist erforderlich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus diesem Kommentar, die inputType wurde im code festgelegt mit:
Dies ist eigentlich nicht korrekt, da
TYPE_TEXT_FLAG_MULTI_LINE
undTYPE_TEXT_FLAG_CAP_SENTENCES
sind nur die flags, und enthalten nicht die eigentliche Messgröße. In Reihenfolge für Sie zu arbeiten, Sie muss geschichtet werden als Flaggen auf der Oberseite derInputType.TYPE_CLASS_TEXT
. Ohne diese Typ-Klasse fahne, den text Bearbeiten, der nicht über eine Basis-input-type-Klasse an und übernehmen Sie Ihre Fahnen, und die Standardeinstellung ist no specified input geben.So, der richtige Weg, um stellen Sie den input-Typ der mit beiden flags ist:
Für offizielle details über die Funktionsweise dieser flags finden Sie in der Android Developer Docs auf InputType und TextView - android:inputType
Ich bin nicht sicher, warum die design-Entscheidung ist dies. Ich persönlich denke, Sie sollten versteckt haben, wie Sie sind, die Ihre Flaggen (als int-Werte/bit-flags), sondern hatte enums und/oder Unterklassen von InputType für Ihre öffentliche Schnittstelle.
InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
war, dass Sie mir das erwartete Verhalten, ohneInputType.TYPE_CLASS_TEXT
. Zum Glück ich stolperte über dieses und es ist alles sortiert jetzt.hey, müssen Sie fügen den folgenden code in der xml-Datei ..
und Sie haben, um Aktivität Datei ...
ist dies funktioniert für mich, und hoffe, dass es für Sie arbeitet .....
Haben Sie versucht, mit
statt