Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Das Thema "SoftInput Keyboard manuell hervorholen um Text im Button zu ändern." befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 25.11.2011, 10:03   #1 (permalink)
Neuer Benutzer

Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Guten Morgen liebe Android-Community :-)

Ich bin hier schon öfter ab und an mal am lesen, war bisher aber aktiv immer nur bei AndroidPit unterwegs. Da mir dort aber öfters nicht geholfen werden konnte und hier eine deutlich höhere User-Anzahl ist, wurde es Zeit sich hier auch aktiv zu betätigen. Soviel nun zu mir, und nun komm ich dann auch gleich mit einem Problem an.

Mein Problem war/ist, das ich das Keyboard manuell hervorholen musste, da ich es auf einen Button anwenden wollte und nicht auf einem EditText Element. Habe es im Großen und Ganzen auch geschafft, allerdings sind noch einige Probleme offen, welche ich nicht allein gelöst bekomme.
Ich poste euch einfach mal den Quellcode.

Die Variable "view" ist hier die Activity wo der Button drauf liegt.

Code:
        // Wichtig, da sonst die Tastatur nicht angezeigt wird
        view.getAnzahlButton().setFocusable(true);
        view.getAnzahlButton().setFocusableInTouchMode(true);
     
        view.getAnzahlButton().setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);

        // Funktion damit bei Klick auf dem Button die Tastatur angezeigt wird
        view.getAnzahlButton().setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                InputMethodManager m = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                m.showSoftInput(view.getAnzahlButton(), 0);
            }
        });


        // Um einzelnde Zeichen auf dem Button zu löschen        
        view.getAnzahlButton().setKeyListener(new DigitsKeyListener() {
            @Override
            public boolean onKeyDown(View v, Editable content, int keyCode, KeyEvent event) {
                if(keyCode == KeyEvent.KEYCODE_DEL && view.getAnzahlButton().getText().length() > 0) {
                    view.getAnzahlButton().setText(view.getAnzahlButton().getText().subSequence(0, view.getAnzahlButton().getText().length() - 1));
                    return false;
                } 
                
                return super.onKeyDown(v, content, keyCode, event);
            }
        });
        

        // Um Tastatur bei Klick auf OK zu schließen und Plausibilitätsprüfung
        view.getAnzahlButton().setOnKeyListener(new OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) { 
                if (keyCode == KeyEvent.KEYCODE_ENTER) {
                    InputMethodManager m = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                    m.hideSoftInputFromWindow(view.getAnzahlButton().getWindowToken(), 0);
                    if(view.getAnzahlButton().getText().length() <= 0 || 
                            (view.getAnzahlButton().getText().length() > 0 && 
                             Integer.valueOf(view.getAnzahlButton().getText().toString()) <= 0)) {
                        view.getAnzahlButton().setText("1");
                    }
                }
                return false;
            }
        });
Meine letzten Probleme sind wie folgt.

1) Wenn ich die Tastatur schließe indem ich auf den Zurück-Button (Hardware-Button), greift keine der Listener so das ich meine Plausibilitätsprüfungen nicht setzen kann. Ich habe auch schon versucht die Methode "onBackPressed" der Activity zu überschreiben, allerdings greift diese auch erst, wenn ich auf "Back" drücke während die Activity Selectiert ist und die Tastatur schon weg ist. Gibt es hier eine Möglichkeit?

2) Wenn die Tastatur aufgerufen wird, verschiebt sich mein ganzes Layout und das obwohl ich in der Manifest bei der Activity "android:windowSoftInputMode="stateHidden|adjustPa n"" angegeben habe, was bisher immer funktioniert hat. Hat hier einer eine Idee woran das liegen könnte?

So, das war nun genug Text, ich hoffe irgendwer ließt das ganze überhaupt und kann mir helfen. Ich glaube das Arbeiten mit dem Keyboard ist bisher das komplizierteste was ich bisher gemacht habe obwohl man glaubt es könne doch nicht so schwer sein. Da war das zusammen basteln der ganzen Custom Widgets echt angenehmer. Liegt aber wohl auch daran weil dieser Teil echt mies bis garnicht dokumentiert ist. =/
phiLue ist offline   Mit Zitat antworten
Alt 25.11.2011, 10:18   #2 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Abgesehen von deinen Problemen halte ich dein Vorhaben nicht für gut. Du verlierst dadurch recht viele Funktionen die man beim bearbeiten hat. Ich würde nie ein Text eines Buttons direkt verändern über die Tastatur!

Besser wäre ein Dialog wo ein Textfeld drin ist wo man auch den Text makieren kann, copy & paste funktioniert und man ohne Probleme sein Text eingeben kann.

Gruß
Michael
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 25.11.2011, 10:26   #3 (permalink)
Neuer Benutzer

Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Das will ich auch garnicht bestreiten und ich gebe dir vollkommen recht. Ich würde es auch genauso machen wie du sagtest, allerdings wird mir das leider so vorgegeben weswegen ich hier nichts ändern darf. =/

Allerings handelt es sich hier auch nur um die Eingabe von max. 3 Zahlen wo das fehlen von Copy&Paste hoffentlich kein all zu großes defizit dastellt. Nichts desto trotz wäre der Dialog trotzdem die bessere Lösung.
phiLue ist offline   Mit Zitat antworten
Alt 25.11.2011, 10:36   #4 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Du musst deine Kunden auch ein wenig erziehen. Wenn man selber merkt, dass im Konzept Lücken oder nicht optimal überlegt wurde. Sollte man das mit dem Kunden besprechen. So ein Punkt halte ich auf jeden Fall für Besprechungswürdig
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 25.11.2011, 14:30   #5 (permalink)
Neuer Benutzer

Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Hast du wahrscheinlich recht mit. :-)
Ich habe es jetzt mit nem Dialog gelöst und muss sagen, dass es in der Tat um einiges komfortabler und angenehmer ist. Schon allein deswegen, weil man von anderen Apps auch gewohnt es, sowas über einen Dialog zu machen.

Danke nochmal für die Aufklärung. Vielleicht kann ja trotzdem jemand meine Codeschnippsel da oben gebrauchen da dieser Teil wirklich mies dokumentiert ist. (:
phiLue ist offline   Mit Zitat antworten
Alt 25.11.2011, 14:35   #6 (permalink)
Android-Hilfe.de Mitglied

Modell: Acer Iconia A100

Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
Standard AW: SoftInput Keyboard manuell hervorholen um Text im Button zu ändern.

Vom Standpunkt der Usability ist das sicherlich weniger optimal. Benutzer erwarten dass sich Button wie Button verhalten, und Textfelder wie Textfelder. Das mag ja eine kreative Idee sein, aber den Durchchnittsbenutzer verwirrt das nur.....
__________________
Samsung Galaxy S mit Android 4.03 RC4 ICSSGS
Acer Iconia A100 mit Android 3.2
Vodafone 858 smart mit Android 2.2.1
mradlmaier ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Button zur Laufzeit einen Text zuweisen bjoern4G Android App Entwicklung 5 04.11.2011 16:29
Neue Apple-Patente: Air-Keyboard sowie Umwandlung eines Gespräches in Text Wearl Smalltalk und Offtopic 4 20.05.2011 11:12
Button mit Image und Text Unicate Android App Entwicklung 1 12.04.2011 13:33
HTC Keyboard mit Voice-to-Text verfügbar oclock Root / Hacking / Modding für HTC Desire 3 17.04.2010 21:17
Neues Keyboard manuell installieren Flyzer HTC Magic Forum 23 09.08.2009 21:52




Du liest gerade: "SoftInput Keyboard manuell hervorholen um Text im Button zu ändern." unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.