Android:将数据从SurfaceView传递到其父活动



我在将信息从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();

最新更新