java action 参数_java模拟C# Action作为方法参数传递

1.定义Action的接口 public class pubInterface { public static interface action{ void invoke(T o); } }

2.调用的地方使用方式 pubdialog.ShowAskMsg(this,"你是我的提示信息",new pubInterface.action(){ @Override public void invoke(String msg){ Toast.makeText(com.example.administrator.antest.MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });

3.使用的地方 /** * 对话框公用实现方法 */ public class pubdialog{ public static void ShowAskMsg(Context context,String Msg, pubInterface.action _callBack){ dialog_msg_activity dialog=new dialog_msg_activity(context,Msg, _callBack); dialog.show(); } } //对话框窗体 public class dialog_msg_activity extends Dialog{ private Context context; private String Msg=""; //提示信息 pubInterface.action callBack; public dialog_msg_activity(Context context,String _Msg, pubInterface.action _callBack) { super(context, R.style.dialog_custom); this.context = context; this.Msg=_Msg;//提示信息 callBack=_callBack; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window window = getWindow(); window.setGravity(Gravity.CENTER); // 此处可以设置dialog显示的位置为居中 window.setWindowAnimations(R.style.bottom_menu_animation); // 添加动画效果 setContentView(R.layout.dialog_msg); WindowManager windowManager = ((Activity) context).getWindowManager();// 宽度全屏 Display display = windowManager.getDefaultDisplay(); WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.width = display.getWidth()*4/5; // 设置dialog宽度为屏幕的4/5 getWindow().setAttributes(lp); //setCanceledOnTouchOutside(true); // 点击Dialog外部消失 ((TextView)findViewById(R.id.dialog_text)).setText(this.Msg); //dialog等控件里不能再xml里直接调用单击事件 SetClickEvent(((TextView)findViewById(R.id.dialog_sure)));//注册单击事件 SetClickEvent(((TextView)findViewById(R.id.dialog_cancel)));//注册单击事件 } public void SetClickEvent(View view) { view.setOnClickListener(new View.OnClickListener(){ @Override //重写onClick函数 public void onClick(View v){ dismiss();//让dialog关闭 if(callBack!=null) { if(v.getId()==R.id.dialog_sure) { callBack.invoke("Y"); } else { callBack.invoke("N"); } } } }); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值