我在将信息从SurfaceView类发送到其父级
覆盖活动将其视为绘图面板设置:
public class Overlay extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_Overlay);
drawingPanel dPanel = new drawingPanel(this);
setContentView(dPanel);
}
}
然后在绘图面板中:
public class drawingPanel extends SurfaceView implements SurfaceHolder.Callback {
Context context = context;
public Player(Context context, int num) throws ClassNotFoundException, IOException {
super(context);
this.context = context;
SurfaceHolder holder = getHolder();
holder.addCallback(this);
}
public boolean onTouchEvent(MotionEvent e){
if(e.getAction()==MotionEvent.ACTION_DOWN){
//send info to Overlay that drawingPanel was touched
}
}
}
触摸SurfaceView时,我想将该信息发送到覆盖。我不能简单地在覆盖活动中使用OnTouchEvent,因为我需要用DrawingPanel绘制内容。我的主要目标是在使用SurfaceView时触摸屏幕时隐藏/显示动作栏。如果有另一种方法可以实现这一目标,请在下面陈述。
尝试将此行添加到 onCreate
Overlay
class
dPanel.setActivity(this);
并在drawingPanel
类中实现setActivity()
:
public void setActivity(Activity overlayActivity) {
mActivity = overlayActivity;
}
这样,您可以使用mActivity
参考您的活动并致电公共方法以"隐藏/显示动作栏",例如:
mActivity.getActionBar().hide();
和,
mActivity.getActionBar().show();