2017-05-03 4 views
0

Ich versuche, Enter-Taste zu erhalten, wenn Benutzer gedrückt.Android Edittext keypress feuert nicht

Ich habe viele Codes ausprobiert, aber weder im Emulator noch im Gerät konnte ich die Eingabetaste drücken.

Hier ist mein Code:

public class MainActivity extends AppCompatActivity implements View.OnKeyListener { 
String barkodsifre; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    EditText sifre = (EditText) findViewById(R.id.barkodsifre); 
    sifre.setOnKeyListener(this); 
} 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_ENTER)) { 
     Log.i("a","b"); 
     return true; 
    } 
    return false; 
} 

}

Es gibt nur 1 EditText und ein Textview in xml. Die Daten werden eingegeben, um den Text mit einem Barcodescanner zu bearbeiten. Der Barcodescanner sendet "Enter" am Ende des gescannten Barcodes. Ich sende "enter" vom Barcode-Scanner am Ende des Barcodes, aber irgendwie handhabt es nie Enter-Taste.

Ist etwas im Code verpasst oder der Code ist total falsch? Wie kann ich mit der "Enter" -Taste umgehen, die von einem Barcodescanner kommt?

Hier ist meine xml:

<RelativeLayout 
    android:layout_width="368dp" 
    android:layout_height="495dp" 
    tools:layout_editor_absoluteX="8dp" 
    tools:layout_editor_absoluteY="8dp"> 

    <TextView 
     android:id="@+id/lblbarkod" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:ems="10" 
     android:inputType="none" 
     android:text="Barkod Giriniz!" 
     android:textAlignment="center" 
     android:textSize="30sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/barkodsifre" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignEnd="@+id/lblbarkod" 
     android:layout_alignLeft="@+id/lblbarkod" 
     android:layout_alignRight="@+id/lblbarkod" 
     android:layout_alignStart="@+id/lblbarkod" 
     android:layout_below="@+id/lblbarkod" 
     android:imeOptions="actionGo|flagNoFullscreen" 
     android:inputType="textPassword" 
     android:maxLines="1" 
     android:ems="10" /> 

</RelativeLayout> 

Antwort

0
@Override <----------------!!!!! 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_ENTER)) { 
     Log.i("a","b"); 
     return true; 
    } 
    return false; 
} 
+0

Sorry, ich habe nicht die Antwort verstehen. Wenn du meinst, dass ich über die Onkey-Methode überschreiben muss, habe ich es getan und es funktioniert immer noch nicht. –

0

Try this:

public class MainActivity extends AppCompatActivity implements EditText.OnKeyListener { 
    String barkodsifre; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     EditText sifre = (EditText) findViewById(R.id.barkodsifre); 
     sifre.setOnKeyListener(this); 
    } 

    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      Log.i("a","b"); 
      return true; 
     } 
     return false; 
    } 
}