2015-08-23 7 views
8

Ich habe folgende EditText:input = "Zahl" mit mehr als einer Zeile

<EditText 
    android:id="@+id/txt1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_marginLeft="20dp" 
    android:layout_marginRight="20dp" 
    android:layout_marginTop="15dp" 
    android:background="@drawable/rounded_corners" 
    android:hint="Txt1" 
    android:inputType="number" 
    android:minLines="2" 
    android:text=""/> 

wo rounded_corners es ist:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 

    <stroke 
     android:width="1dp" 
     android:color="#FFFFFFFF" /> 

    <solid android:color="#FFFFFFFF" /> 

    <padding 
     android:left="1dp" 
     android:right="1dp" 
     android:top="1dp" /> 

    <corners android:radius="5dp"/> 

</shape> 

Das Problem es ist, dass ich weiß nicht, wie man tun dies EditTextgrößer (es nur eine Zeile anzeigen), wenn ich inputType="number" hinzufügen. Ich meine, es könnte mehr als eine Zeile angezeigt werden.

Was ich versucht habe

1) die Änderung layout_height zu match_parent.

2) Fügen Sie dem inputType Attribut den Wert textMultiLine hinzu.

3) Stellen Sie eine feste Höhe mit android:height ein.

4) Wie Sie im obigen Code sehen können, füge ich auch android:minLines Attribut hinzu.

5) Ich habe auch versucht, eine Reihe von Zeilen mit android:lines zu setzen.

Keine dieser Methoden löst mein Problem, so würde jede Hilfe wirklich geschätzt werden.

Vielen Dank im Voraus!

+0

Haben Sie die Benutzer kann neue Linien bedeuten, wie er will oder zeigen nur mehrzeilige Zahlen unter Umständen ohne dass der Benutzer neue Zeilen eingegeben ? – shhp

+0

@shhp Das haben standardmäßig mehr als eine Zeile und wenn ich drei Zeilen eintippe, werden die drei Zeilen angezeigt. –

Antwort

11

Bitte fügen Sie diese beiden Zeilen in Ihre EditText XML-Datei, funktioniert es:

android:inputType="textMultiLine|number" 

android:digits="0,1,2,3,4,5,6,7,8,9" 
+0

Danke für den Trick! Es funktioniert perfekt! :) –

+0

Sie sind herzlich willkommen :) Error404 – Awadesh

+0

Brilliant !!!!!!!!!!!!!!!!!!!!!!!! –

0

Sie könnten das android:singleLine Attribut hinzufügen und legen Sie es auf false (es wird wahrscheinlich obwohl noch nicht). Es erscheint jedoch ziemlich seltsam, textMultiLine und number zusammen zu verwenden, da das neue Zeilenzeichen weder eine Nummer noch eine Nummer ist.

Beachten Sie auch, dass das inputType-Attribut lediglich ein Hinweis für den IME ist und nicht alle von ihnen die festgelegten Werte einhalten können.

+0

Mit 'android: singleLine =" false "' funktioniert immer noch nicht. Und ich weiß, dass 'textMultiLine' und' number' seltsam klingen, aber ich wollte alle Möglichkeiten beweisen. Ich kann die Lösung für dieses Problem nicht finden. –

+0

Möglicherweise, weil es keine solche Lösung gibt. Wenn Sie mehrere Zeilen mit Zahl als Eingabetyp möchten, fangen Sie das neue Zeilenzeichenereignis ab und fügen Sie dem Layout unterhalb des aktuellen einen neuen EditText hinzu, damit dieses neue Feld als nächste Zeile verwendet werden kann. –

+0

Es könnte ein Workaround (so schmutzig meiner Meinung nach) sein, nur wenn Sie 2 Zeilen von Zahlen haben, aber stellen Sie sich vor, dass Sie 300 Zeilen haben. Müssen Sie 300 'EditText' eins unter den anderen erstellen? –

Verwandte Themen