EditText nach Zahlen bzw. Text filtern?

  • Hallo ich habe eine kleine Frage:


    Ich bekomme zwei "EditText" Eingaben - und möchte bei einer nur Buchstaben akzeptieren - bei der anderen NUR Zahlen


    wie schaffe ich das? :-!


    Edit:


    Ich habe folgendes bis jetzt gemacht, was aber nicht klappt:



    Username = (EditText) findViewById(R.id.editUsername);

    UsernameTest = Username.getText().toString();
    // hier soll die Eingbabe in EditText als String in UsernameTest gespeichert werden.


    weiter später habe ich


    if(UsernameTest.matches("[0-9]+"))
    {

    FehlerMeldung("Wrong Input, Try again!");
    }


    benutzt... das will aber nicht eingreifen, müsste doch eigentlich eingreifen wenn meine eingabe z.b 123 ist, wird das in string gespeichert, und durch die if abfrage müsste die FehlerMeldung erscheinen...

  • Hallo,


    ich würde zunächst einmal Leerzeichen am Anfang und am Ende aus dem String herausfiltern, denn die können u.a. zu solchen Problemen führen:


    Code
    String UsernameTest = Username.getText().toString().trim();


    Dann würde ich überprüfen, ob die Eingabe überhaupt korrekt ausgelesen wird, z.B. mit LogCat (http://developer.android.com/t…ugging/debugging-log.html). Wenn die Eingabe nämlich nur aus Zahlen besteht (d.h. UserName = "123"), dann muss die Methode "FehlerMeldung" auf jeden Fall ausgeführt werden.


    Gibt der User beide Eingaben im gleichen EditText ein? Falls du zwei separate EditText-Komponenten hast, würde ich es über ein entsprechendes XML-Attribut lösen: http://developer.android.com/r…ml#attr_android:inputType

  • Dieser hässliche graue Balken nennt sich ActionBar und ist eines der Standartelemente von Android, die man nur unter wenigen Umständen (Map-, Bild-Apps) weglassen sollte.
    Siehe dazu: http://developer.android.com/guide/topics/ui/actionbar.html
    Ansonsten solltest du dies immernoch wollen, so lässt sich dies mit:

    Code
    android:theme="@android:style/Theme.NoTitleBar"


    im Manifest ändern lassen.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • ah ok :)


    eine weitere Frage:


    Ich habe eine ListView mit mehreren Zeile. Ich möchte die ListView-Zeilen einfärben, je nach Bedingung.



    Hier ist mal der Codeauszug:



    Das Problem ist, dass er die Ganze Listview grün färbt und nicht wenn nur z=1 gilt.


    Wie kann ich also einzelne Listview Zeilen ansprechen statt die ganze Listview?

  • Wenn Du sagst:


    listView.setBackgroundColor()


    Was soll dann Deiner Meinung nach passieren?


    Du musst in der getView() Deines Adapters die Hintergrundfarbe des Views setzen, welches zurückgegeben werden soll.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Gar nicht, da das dem Konzept eines Buttons entgegen läuft.
    Entweder etwas wird nach Buttondruck gestartet, oder etwas wird nach einer Schüttelgeste gestartet.


    Natürlich kann sowohl der Buttondruck als auch die Schüttelgeste dasselbe starten.
    Du könntest aber auch via Schütteln den Button aktivieren um dann auf den zu drücken…


    An die Schüttelgeste kommst Du (sofern vom Gerät unterstützt) über den SensorManager.
    Da musst Du dann 'nur noch' definieren, ab welchen Werten Du das Ganze als 'geschüttelt' werten möchtest.


    Beispiel bei StackOverflow
    Beispiel von Hlidskialf Software

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

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