1.定义Action的接口
public class pubInterface {
public static interface action<T>{
void invoke(T o);
}
}
2.调用的地方使用方式
pubdialog.ShowAskMsg(this,"你是我的提示信息",new pubInterface.action<String>(){
@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<String> _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<String> callBack;
public dialog_msg_activity(Context context,String _Msg, pubInterface.action<String> _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");
}
}
}
});
}
}
参考:https://www.cnblogs.com/piaolingzxh/p/4118967.html