2016-12-20 12 views
1

私はこの問題に苦しんでいます。どのように私は私がこの別のクラスからkeyeventを呼び出す方法

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

によってkeyboard.java上のキーを検出して、私が呼び出す必要が

このcodereader.javaクラスでの活動を実行するために、別のJavaクラス(keyboard.java)からキーイベントを呼び出すことができますそれここで、実行活動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(); 

} 

で私が所有し、それによってコードリーダを試していると私はactivity_main.xmlボタンからのonClickを呼び出したときに完璧に動作します。

答えて

0

あなたはEventBusを経由してイベントを送信することができます。インターフェースは、オブジェクトをインスタンス化... onkeyメソッドを持っているクラスでそれを実装...に...カスタムインタフェースを作成出番です https://github.com/greenrobot/EventBus

0

インターフェイスを実装しているクラスをカスタムインターフェイスにキャストして、カスタムインターフェイスのカスタムインターフェイスをカスタムインターフェイス...インターフェイスメソッドでインターフェイスメソッドを呼び出すと完了しました。 onKeyがコールバックメソッドの場合、より良い方法があるかもしれません...

関連する問題