0

測定器用の携帯電話インターフェースを書きました。GLSurfaceViewsのfromには、機能的な画面がたくさんあります。レンダリングを正しく起動できますが、戻るボタンを機能させる方法がわかりません。私のレンダリングコードは次のようになります。

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);
    }
});

どこに置けばいいのかわからないpublic boolean onKeyDown(int keyCode, KeyEvent event)

4

1 に答える 1

0

onKeyDown()メソッドはアクティビティに配置する必要があります。これを使用して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()はアクティビティに含まれている必要があります。

于 2012-05-05T02:16:23.360 に答える