Information einblenden - vom custom keyboard aus

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Information einblenden - vom custom keyboard aus

    Hallo,

    ich habe ein custom keyboard. Jetzt möchte ich bei einem Tastendruck und bestimmten Bedingungen eine Information einblenden. Diese Information soll möglichst oberhalb der Tastatur sein, und solange sichtbar bleiben, bis sie angetippt wird. Ansonsten soll der Anwender ganz normal weiter arbeiten können (keine modale Information).

    Tastendruck und Bedingungen habe ich... Das Infofenster ist mein Problem. Kennt dazu jemand eine Lösung, oder einen Ansatz?

    Ein Gedanke war, die Tastatur temporär zu vergrößern und per canvas die Info direkt auf die Tastatur zu pinseln. Da scheitere ich, weil ich die Tastatur nicht größer bekomme. Nicht dass es nicht geht, ich weiß nur nicht wie.
    Ein anderer Gedanke war eine weitere activity zu starten. Hier schaffe ich es nicht, dass das eigentliche Programm normal weiter bedient werden kann.

    Viele Grüße
    Jürgen
  • Hallo
    Du könntest doch oberhalb deines Tastatur Layouts eine Textzeile, Button einfügen und den unsichtbar machen. Mit dem Tastendruck und Bedingung machst du es sichtbar.

    Oder du machst zwei layout Dateien eine mit der Infozeile und eins ohne. Nach dem Tastendruck tauschst du das layout aus.

    Problem ist dann Nur das du dann wohl anderen ids für die
    Tasten Button hast. Ich weiss jetzt nicht ohne test ob es geht zwei Layouts und gleiche id.
    Ein Feedback auf Tipps ist auch schön. :P
  • Hallo jogimuc,

    danke für die schnelle Antwort! Ich denke, ich versuche die verschiedenen Layouts. Auf dem Screen ist eh so wenig Platz und dann möchte ich den nicht dauerhaft mit einer "leeren" Infozeile verschwenden. Ich meine, das mit den Tasten-ids lösbar ist mit einer Tastenbreite 0 - Die ist dann id-mäßig vorhanden, aber nicht sicht- und bedienbar. Weißt Du zufällig, wie man die Layouts möglichst ohne viel Wind (Aus- und Einblendeanimation) gewechselt bekommt (habe es noch nicht getestet, vermute aber sowas)?

    Viele Grüße
    Jürgen
  • In was ist den das Tastatur layout eingebettet. Wenn es in einer activity ist dann mache ein neues setcontentview. Ansonsten must du den infater benutzen.

    Nur noch zur Info das mit der neuen activity geht nicht. Wenn eine neue startest ist die alte beendet und wird aus dem Speicher gelöscht. Gehst du zurück wird eine Instanz der activty erstellt.
    Ein Feedback auf Tipps ist auch schön. :P
  • jogimuc schrieb:

    ist die Tastatur eine eigene Anwendung die die System Tastatur ersetzt?

    Wie und wo erstellst du den das layout in Java Code?
    Ja, ist eine eigene Anwendung. Angefangen habe ich ohne Activity, nur mit dem Service.
    so sieht der Anfang meiner onCreateInputView (MyInputMethodService.Java) aus:

    Java-Quellcode

    1. Keyboard qwerty_keyboard;
    2. Keyboard qwertz_keyboard;
    3. settings = getSharedPreferences("Setup",0);
    4. String kbd = settings.getString("Keyboard","");
    5. String path = settings.getString("Path","");
    6. // get the KeyboardView and add our Keyboard layout to it
    7. kv = (MyKeyboardView)getLayoutInflater().inflate(R.layout.keyboard_view, null);
    8. //popupWindow=new CustomPopup(kv.getRootView(),this);
    9. qwerty_keyboard = new Keyboard(this, R.xml.qwerty);
    10. qwertz_keyboard = new Keyboard(this, R.xml.qwertz);
    11. if (kbd.equals("qwertz")) {
    12. keyboard = qwertz_keyboard;
    13. } else {
    14. keyboard = qwerty_keyboard;
    15. }
    16. kv.setKeyboard(keyboard);
    17. kv.setOnKeyboardActionListener(this);
    Alles anzeigen
    Globale Variablen:
    private MyKeyboardView kv;
    private Keyboard keyboard;

    private boolean caps=false;
    Das aus dem Manifest:

    XML-Quellcode

    1. <service
    2. android:name=".MyInputMethodService"
    3. android:label="BASIC! Keyboard"
    4. android:permission="android.permission.BIND_INPUT_METHOD">
    5. <intent-filter>
    6. <action android:name="android.view.InputMethod"/>
    7. </intent-filter>
    8. <meta-data
    9. android:name="android.view.im"
    10. android:resource="@xml/method"/>
    11. </service>
    Alles anzeigen
    ...wenn ich das so ansehe, könnte die Lösung in kv.setKeyboard(keyboard); liegen. Ich probier mal aus, ob ich dem KeyboardView "on the fly" ein anderes Keyboard verpassen kann.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von JuergenS ()

  • hm, bin halt doch nur Anfänger... Zum Testen habe ich gerade

    Keyboard qwerty_keyboard;
    Keyboard qwertz_keyboard;

    global gemacht, das Keyboard mit qwertz gestartet und kv.setKeyboard(qwerty_keyboard); innerhalb von onKey aufgerufen.
    ...hat funktioniert., das andere Keyboard erscheint dann auch. ist das grundsätzlich falsch?