2017-08-12 1 views
0

Ich bin neu in Java/Android. Ich versuche, beide Bildschirm "Tasten" von android.widget.Button und com.google.android.things.contrib.driver.button.Button für die Aufnahme von Eingaben von beiden HW und Visual Tasten zu verwenden. In Android Studio ist es nicht möglich, beide Pakete aufgrund desselben Namens zu importieren. Ich benutze diese direkte Benennung.com.google.android.things.contrib.driver.button.Button vs android.widget.Button

mButtonInputDriver = new ButtonInputDriver(BoardDefaults.getGPIOForButton(),com.google.android.things.contrib.driver.button.Button.LogicState.PRESSED_WHEN_LOW, KeyEvent.KEYCODE_SPACE); 
mButtonInputDriver.register(); 

Sie werden immer noch als eins bezeichnet. dh; Die HW-Schaltfläche und die aktuellen aktiven Bildschirmschaltflächenklicks werden als eins betrachtet. Wie kann ich diese beiden voneinander trennen?

Antwort

1

Wenn Sie nicht möchten, dass die Hardware-Schaltfläche in den normalen Tastenmechanismus für Android einfließt (z. B. die InputDriver-Funktion). Dann sollten Sie die Button Bibliothek verwenden, um direkt:

mButton = new Button(gpioPinName, 
     Button.LogicState.PRESSED_WHEN_LOw 
); 
mButton.setOnButtonEventListener(new OnButtonEventListener() { 
    @Override 
    public void onButtonEvent(Button button, boolean pressed) { 
     // do something awesome when the Hardware button is pressed only 
    } 
}); 

https://github.com/androidthings/contrib-drivers/tree/master/button

(statt mit dem System der Registrierung mit ButtonInputDriver)

+0

Die ButtonInputDrived Feeds futtons in onKeyPressed, die nichts mit der Standard-Ansicht zu tun .OnClickedListener der Ansichtsschaltflächen. In der Tat sind sie völlig unterschiedliche Dinge. Ich verstehe diese Frage eigentlich nicht. – shalafi

Verwandte Themen