接口回调方法刷新自定义布局

//自定义布局
public class MyLayout extends RelativeLayout{
    
    private Context mContext;
    private ICallBack mCallBack;

    public void setCallBack(ICallBack  cb){
        mCallBack = cb;
    }

    /**
     * 接口
     */
    public interface ICallBack{
        public void update();
    }

 public boolean onTouchEvent(android.view.MotionEvent event) {
 	//调用接口方法	
	  if(mCallBack != null){
            mCallBack.update();
          }
        return false;
        };
     

      //布局初始化
    public MyLayout(Context context) {
        super(context);
        
        mContext = context;
        LayoutInflater.from(context).inflate(R.layout.mylayout, this);
        View v = findViewById(R.id.layout_name);
        
	......
	}
}
可在Activity中创建上面的布局实现其接口方法来刷新ui等操作
private WindowManager mWindowManager;  
private WindowManager.LayoutParams wmParams; 
    //创建布局并实现接口方法
    public void createMyLayout(){
	    wmParams = new WindowManager.LayoutParams();  
	    mWindowManager = getWindowManager(mContext);

            mLayout = new MyLayout (mContext);
            if (wmParams == null) {
                wmParams = new LayoutParams();

                wmParams.type = LayoutParams.TYPE_PHONE;
                wmParams.format = PixelFormat.RGBA_8888;
                wmParams.gravity = Gravity.LEFT | Gravity.TOP;
             //不可聚焦
            //    wmParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE; 

                //设置窗口长宽数据    
                wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;  
                wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;  
                //设置x,y轴坐标
                wmParams.x = 0;
                wmParams.y = 0;
          }
	    //将布局添加到窗口
            mWindowManager.addView(mLayout, wmParams);
           //实现接口方法
            mLayout.setCallBack(new ICallBack() {
                
                @Override
                public void update() {
                    //实现方法
			......
                }
            });
            
        }
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值