2016-12-20 4 views
1

Je suis aux prises avec ce problème. Comment puis-je appeler événement clé d'une autre classe de Java (keyboard.java) pour exécuter l'activité dans cette classe codereader.javaComment appeler keyevent d'une autre classe

Je détecte la clé sur keyboard.java par ce

@Override 
public void onKey(int primaryCode, int[] keyCodes) { 
    InputConnection ic = getCurrentInputConnection(); 
    playClick(primaryCode); 
    switch (primaryCode) { 
     case -101: 
      //do something with the key -101 
      break; 

et je dois appeler ici et l'activité d'exécution dans codereader.java

public class QRscanner extends Activity implements ZXingScannerView.ResultHandler{ 
private ZXingScannerView mScannerView; 

@Override 
protected void onCreate (Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void onClick (View v){ 
    mScannerView = new ZXingScannerView(this); 
    setContentView(mScannerView); 
    mScannerView.setResultHandler(this); 
    mScannerView.startCamera(); 

} 

J'essayer CodeReader par posséder et fonctionne parfaitement quand je l'appelle onclick du bouton activity_main.xml.

Répondre

0

C'est là Interfaces vient ... créer une interface personnalisée ... mettre en œuvre dans la classe qui ont la méthode onkey ... instancier un objet de votre interface personnalisée dans la classe d'activité en castant la classe implémentant l'interface à votre interface personnalisée ... appelez la méthode d'interface par la méthode d'interface et vous avez terminé ... Si l'onKey est une méthode de rappel alors il pourrait y avoir une meilleure façon ...