mögliches Duplikat: Android-Singleline-true-not-working-for-edittext
<EditText
Android:id="@+id/searchbox"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:lines="1"
Android:scrollHorizontally="true"
Android:ellipsize="end"
Android:layout_weight="1"
Android:layout_marginTop="2dp"
Android:drawablePadding="10dp"
Android:background="@drawable/edittext"
Android:drawableLeft="@drawable/folder_full"
Android:drawableRight="@drawable/search"
Android:paddingLeft="15dp"
Android:hint="search...">
</EditText>
Ich möchte, dass die obige EditText
nur eine Zeile hat. Selbst wenn der Benutzer die Eingabetaste drückt, sollte der Cursor nicht in die zweite Zeile gelangen. Kann mir jemand dabei helfen?
Verwenden Sie Android:maxLines="1"
und Android:inputType="text"
Sie haben das Attribut Android: maxLines vergessen. Und beziehen Sie sich auf Android: inputType Bei Ihrem Beispiel wird das folgende Ergebnis angezeigt:
<EditText
Android:id="@+id/searchbox"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:maxLines="1"
Android:inputType="text"
Android:scrollHorizontally="true"
Android:ellipsize="end"
Android:layout_weight="1"
Android:layout_marginTop="2dp"
Android:drawablePadding="10dp"
Android:background="@drawable/edittext"
Android:drawableLeft="@drawable/folder_full"
Android:drawableRight="@drawable/search"
Android:paddingLeft="15dp"
Android:hint="search...">
</EditText>
Die Verwendung von Android:singleLine="true"
ist veraltet.
Fügen Sie einfach Ihren Eingabetyp hinzu und setzen Sie Maxline auf 1, und alles wird gut funktionieren
Android:inputType="text"
Android:maxLines="1"
Android:singleLine
ist jetzt veraltet. Aus der Dokumentation :
Diese Konstante wurde in API-Level 3 nicht mehr unterstützt.
Dieses Attribut ist veraltet. Verwenden Sie stattdessen
maxLines
, um das Layout eines statischen Texts zu ändern, und verwenden Sie stattdessen das AttributtextMultiLine
für das Attribut inputType für bearbeitbare Textsichten (wenn sowohl singleLine als auch inputType angegeben werden, überschreiben die inputType-Flags den Wert von singleLine).
Sie können also einfach Android:inputType="textEmailSubject"
oder einen anderen Wert einstellen, der dem Inhalt des Felds entspricht.
Sie müssen diese Zeile in Ihrem EditText in xml hinzufügen:
Android:maxLines="1"
Android:maxLines="1"
Android:inputType="text"
Fügen Sie den obigen Code hinzu, um eine einzige Zeile im EditText-Tag in Ihrem Layout anzuzeigen.
Android:singleLine="true" is deprecated
Diese Konstante wurde veraltet in API-Ebene 3 .
Dieses Attribut ist veraltet. Verwenden Sie stattdessen maxLines, um die .__ zu ändern. Layout eines statischen Textes und verwenden Sie das Flag textMultiLine in der inputType-Attribut stattdessen für bearbeitbare Textansichten (wenn sowohl singleLine als auch inputType angegeben sind, überschreiben die inputType-Flags den Wert von singleLine).
Das Android:singleLine
-Attribut ist jetzt veraltet. Bitte fügen Sie diese Attribute Ihrer EditText
hinzu, damit eine EditText
eine einzelne Zeile ist.
Android:inputType="text"
Android:imeOptions="actionNext"
Android:maxLines="1"
Ich habe dies in der Vergangenheit mit Android:singleLine="true"
getan und dann einen Listener für die Eingabetaste hinzugefügt:
((EditText)this.findViewById(R.id.mytext)).setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
//if the enter key was pressed, then hide the keyboard and do whatever needs doing.
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
//do what you need on your enter key press here
return true;
}
return false;
}
});
Dies wird für den EditText funktionieren:
Android:inputType="text"
Dann würde ich eine maximale Länge für den Eingabetext festlegen:
Android:maxLines="1"
Das sind die 2, die jetzt benötigt werden.
Include Android:singleLine="true"
Alle zeigen den XML-Weg, außer dass eine Person den Aufruf der setMaxLines-Methode von EditText zeigte. Als ich das tat, funktionierte es jedoch nicht. Eine Sache, die für mich funktionierte, war das Einstellen der Eingabetyp.
EditText editText = new EditText(this);
editText.setInputType(InputType.TYPE_CLASS_TEXT);
Dies erlaubt A-Z, a-z, 0-9 und Sonderzeichen, erlaubt aber nicht, die Eingabetaste zu drücken. Wenn Sie die Eingabetaste drücken, wird die nächste GUI-Komponente aufgerufen, falls zutreffend in Ihrer Anwendung.
Möglicherweise möchten Sie auch die maximale Anzahl von Zeichen festlegen, die in diesen EditText eingefügt werden können. Andernfalls wird alles, was sich rechts davon befindet, vom Bildschirm geschoben oder einfach vom Bildschirm selbst abgerollt. Das kannst du so machen:
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(8);
editText.setFilters(filters);
Dadurch werden die maximalen Zeichen in diesem EditText auf 8 festgelegt. Hoffe das hilft dir alles.
bitte versuche diesen Code
Android:inputType="textPersonName"
Programmatisch:
textView.setMaxLines(1);
benutzen
Android:ellipsize="end"
Android:maxLines="1"
Um die Einschränkung einzuschränken, müssen Sie nur die Option für eine Zeile auf "true" setzen.
Android:singleLine="true"
Es ist auch wichtig, darauf zu achten, wenn die Eigenschaft Android: inputType textMultiLine ist. Wenn ja, werden die Eigenschaften Android: singleLine, Android: imeOptions, Android: ellipsize und Android maxLines ignoriert und Ihr EditText akzeptiert trotzdem MultiLines.
Der @Aleks G OnKeyListener () funktioniert wirklich gut, aber ich habe ihn von MainActivity ausgeführt und musste ihn daher leicht modifizieren:
EditText searchBox = (EditText) findViewById(R.id.searchbox);
searchBox.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
//if the enter key was pressed, then hide the keyboard and do whatever needs doing.
InputMethodManager imm = (InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchBox.getApplicationWindowToken(), 0);
//do what you need on your enter key press here
return true;
}
return false;
}
});
Ich hoffe, das hilft jedem, der dasselbe versucht.
Verwenden Sie den folgenden Code anstelle Ihres Codes
<EditText
Android:id="@+id/searchbox"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:lines="1"
Android:singleLine="true"
Android:scrollHorizontally="true"
Android:ellipsize="end"
Android:layout_weight="1"
Android:layout_marginTop="2dp"
Android:drawablePadding="10dp"
Android:background="@drawable/edittext"
Android:drawableLeft="@drawable/folder_full"
Android:drawableRight="@drawable/search"
Android:paddingLeft="15dp"
Android:hint="search..."/>
Als Android:singleLine="true"
wird nun abgewertet so verwendet
Verwenden Sie stattdessen maxLines, um das Layout eines statischen Texts zu ändern. Verwenden Sie stattdessen das Attribut textMultiLine im Attribut inputType für bearbeitbare Textsichten (wenn sowohl singleLine als auch inputType angegeben werden, überschreiben die inputType-Flags den Wert von singleLine).
Fügen Sie diese Zeile Ihrem Edittext hinzu
Android: inputType = "Text"
fügen Sie in XML-Datei diese Eigenschaften in Text bearbeiten hinzu
Android:maxLines="1"
Android:imeOptions="actionDone"
arbeitete für mich.
Sie müssen diese Zeile in Ihren EditText einfügen
Android:maxLines="1"
und noch etwas, vergiss nicht set Android:inputType
(was auch immer du willst, Text, Telefon .., aber du musst es einstellen)