我为测量设备写了一个手机界面。我在GLSurfaceViews中有一堆不同的功能屏幕。我可以正确启动渲染,但我无法弄清楚如何使后退按钮工作。 我的渲染代码如下:
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)
答案 0 :(得分:0)
onKeyDown()
方法必须放在活动中。如果要使用它来控制GLSurfaceView或Renderer,则必须使用其他方式将其发送到那里。例如,在您的主要活动中,您可以:
//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()
必须在活动中。