Tastatursensoren unter Android [] (Tastatursensoren unter Android), Lektion, Seite 722747
https://www.purl.org/stefan_ram/pub/tastatursensoren_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Tastatursensoren unter Android 

In dem folgenden Programm wird ein Textfeld der Klasse »android.widget.TextView« angelegt.

Das Objekt »this« wird dann als Ereignisempfänger für jenes Textfeld festgelegt, wodurch die Methode »onKey« bei einer Tasteingabe in jenem Textfelde aufgerufen wird. Diese Methode gibt dann aus, ob eine Taste gedrückt oder losgelassen wurde und um welche Taste es sich handelt.

Das Verbrauchen einer Eingabe

Die beiden Ereignismethoden »onLongClick« und »onKey« geben einen Wahrheitswert zurück, der besagt, ob das Ereignis von diesen Methoden „verbraucht“ wurde. Falls dies zutrifft, so bedeutet es, daß das Betriebssystem dieses Ereignis ignorieren soll. Im Fall von »onKey« soll die Zurücktaste „◅“ nicht als verbraucht gelten, weil sie ihre normale Funktion beibehalten soll.

Der Berührungsmodus

Die Betätigung einer Taste legt selber keine Position oder Region auf dem Bildschirm fest. Daher wird diese Position oder Region separat als sogenannter „Fokus“ festgelegt. Der Fokus ist von klassischen Benutzeroberfläche, die mit Tastatur und Maus arbeiten bekannt. Beispielsweise legt er fest, wo ein über die Tastatur eingegebenes Zeichen erscheint oder auf welche Stelle sich ein Antippen einer Maustaste bezieht.

Bei der Berührung  des Bildschirmes wird hingegen immer eine Positon festgelegt. Daher ist bei einer Berührungseingabe kein separater Fokus notwendig.

Durch eine Berührungseingabe schaltet ein Android-Gerät in den Berührungsmodus, in dem es keinen Fokus gibt. Umgekehrt wird der Berührungsmodus verlassen, wenn Eingaben über andere Eingabegeräte erfolgen.

Damit ein Textfeld auch im Berührungsmodus den Fokus erhalten kann, muß es mit dem Aufruf »setFocusableInTouchMode( true )« modifiziert werden.

Die Bildschirmtastatur

Die Bildschirmtastatur wird auch als „weiche Eingabemethode“ (“soft input method ”) bezeichnet.

Durch »toggleSoftInput« wird die Bildschirmtastatur angezeigt.

Durch »SHOW_FORCED« wird erklärt, daß der Bediener die Bildschirmtastatur erzwungen hat (etwa durch langes Drücken) und sie deswegen erst wieder verschwinden soll, wenn dies ausdrücklich verlangt wird.

MainActivity.java

package com.example;

public class MainActivity extends android.app.Activity
implements android.view.View.OnKeyListener
{

final java.lang.StringBuilder builder = new java.lang.StringBuilder();
android.widget.TextView text;

@java.lang.Override public void onCreate( final android.os.Bundle bundle )
{ super.onCreate( bundle );
final android.view.inputmethod.InputMethodManager manager
=( android.view.inputmethod.InputMethodManager )
getSystemService( android.content.Context.INPUT_METHOD_SERVICE );
this.text = new android.widget.TextView( this );
this.text.setOnKeyListener( this );
this.text.setFocusableInTouchMode( true );
setContentView( text );
this.text.setOnLongClickListener
( new android.view.View.OnLongClickListener()
{ @java.lang.Override public boolean onLongClick( final android.view.View view )
{ MainActivity.this.text.requestFocus();
manager.toggleSoftInput( android.view.inputmethod.InputMethodManager.SHOW_FORCED, 0 );
final boolean theLongClickHasBeenConsumed = true; return theLongClickHasBeenConsumed; }}); }

@java.lang.Override public boolean onKey
( final android.view.View view, final int key, final android.view.KeyEvent event )
{ this.builder.setLength( 0 );
switch( event.getAction() )
{ case android.view.KeyEvent.ACTION_DOWN: builder.append( "DOWN " ); break;
case android.view.KeyEvent.ACTION_UP: builder.append( "UP " ); break; }
this.builder.append( event.getKeyCode() );
builder.append( " " );
builder.appendCodePoint( event.getUnicodeChar() );
{ final java.lang.String s = builder.toString();
android.util.Log.d( "touch log", s );
text.setText( s ); }
final boolean onKeyHasConsumedThisKey = android.view.KeyEvent.KEYCODE_BACK != event.getKeyCode();
return onKeyHasConsumedThisKey; }}

Notiz *

adb shellinput keyevent <key code number or name>

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722747 stefan_ram:722747 Tastatursensoren unter Android Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722747, slrprddef722747, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/tastatursensoren_android