2012-05-04 1 views
0

測定デバイス用の携帯電話インターフェイスを作成しました。私は、GLSurfaceViewからの別個の機能的な画面の束を持っています。私はレンダリングを正しく起動することができますが、バックボタンを動作させる方法を理解することはできません。 は、コードがどのように見えるレンダリングマイ:public boolean onKeyDown(int keyCode, KeyEvent event)GLSurfaceViewsを起動するメニュー

答えて

0

を置くためにonKeyDown()方法は、活動中に置かなければならない場合

Button mSpecButton = new Button(this); 
mSpecButton.setText("Spectrometer"); 
mSpecButton.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     glSurfaceView = new GLSurfaceView(mRun); 
     mRender = new renderSpectro(mRun); 
     glSurfaceView.setRenderer(mRender); 
     setContentView(glSurfaceView); 
    } 
}); 

私が把握することはできません。 GLSurfaceViewまたはレンダラーを制御するためにそれを使用する場合は、別の方法でそれを送信する必要があります。たとえば、あなたの主な活動であなたが持つことができます

//Somewhere in the code 
GLSurfaceView glSurfaceView = new myGLSurfaceView(); 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    glSurfaceView.doBackAction(); //Or something similar 
} 

そして、あなたのmyGLSurfaceViewあなただけのメソッドを持っているで:

public void doBackAction() { 
    //Yay 
} 

あなたは、スレッドの安全性に不安がある場合、それは少し複雑になりますが、初期のonKeyDown()はアクティビティに含まれている必要があります。

関連する問題