Android(安卓)提示框
16lz
2022-06-14
文章参考/转自: https://www.cnblogs.com/xiaoxiaoqingyi/p/6738108.html
感谢博主的无私奉献,受益匪浅。
效果很好,如图:
1. 定义CommonDialog类
public class CommonDialog extends Dialog implements View.OnClickListener{ private TextView contentTxt; private TextView titleTxt; private TextView submitTxt; private TextView cancelTxt; private Context mContext; private String content; private OnCloseListener listener; private String positiveName; private String negativeName; private String title; public CommonDialog(Context context) { super(context); this.mContext = context; } public CommonDialog(Context context, int themeResId, String content) { super(context, themeResId); this.mContext = context; this.content = content; } public CommonDialog(Context context, int themeResId, String content, OnCloseListener listener) { super(context, themeResId); this.mContext = context; this.content = content; this.listener = listener; } protected CommonDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { super(context, cancelable, cancelListener); this.mContext = context; } public CommonDialog setTitle(String title){ this.title = title; return this; } public CommonDialog setPositiveButton(String name){ this.positiveName = name; return this; } public CommonDialog setNegativeButton(String name){ this.negativeName = name; return this; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_dialog); setCanceledOnTouchOutside(false); initView(); } private void initView(){ contentTxt = (TextView)findViewById(R.id.content); titleTxt = (TextView)findViewById(R.id.title); submitTxt = (TextView)findViewById(R.id.submit); submitTxt.setOnClickListener(this); cancelTxt = (TextView)findViewById(R.id.cancel); cancelTxt.setOnClickListener(this); contentTxt.setText(content); if(!TextUtils.isEmpty(positiveName)){ submitTxt.setText(positiveName); } if(!TextUtils.isEmpty(negativeName)){ cancelTxt.setText(negativeName); } if(!TextUtils.isEmpty(title)){ titleTxt.setText(title); } } @Override public void onClick(View v) { switch (v.getId()){ case R.id.cancel: if(listener != null){ listener.onClick(this, false); } this.dismiss(); break; case R.id.submit: if(listener != null){ listener.onClick(this, true); } break; } } public interface OnCloseListener{ void onClick(Dialog dialog, boolean confirm); }}
2. 创建布局文件dialog_dialog.xml:
<?xml version="1.0" encoding="utf-8"?>
3. drawable目录下添加如下三个样式文件
bg_dialog_left_white.xml
<?xml version="1.0" encoding="utf-8"?>
bg_dialog_right_white.xml
bg_round_white.xml
<?xml version="1.0" encoding="utf-8"?>
4. 在res\values\colors.xml添加
#424242 #a1a1a1 #42369a #f3f3f3
5. 在在res\values\styles.xml添加
调用实例(程序退出时的一个确认框 和效果图对应) 代码如下:
@Override public void onBackPressed() { //super.onBackPressed(); //注释掉这行,back键不退出activity new CommonDialog(context, R.style.dialog, "确定退出程序?", new CommonDialog.OnCloseListener() { @Override public void onClick(Dialog dialog, boolean confirm) { if (confirm) { dialog.dismiss(); ActivityCollector.finishAll(); //关闭所有活动 退出程序 } else { dialog.cancel(); } } }).setTitle("提示").show(); }
更多相关文章
- Android屏蔽HOME键
- Android(安卓)Button,TextView的显示大小写问题
- android点击按钮发出声音
- TextView在xml里配置onclick事件
- android sd卡数据库读取
- android退出activity提示再按一次返回键
- android中Activity实现再按一次退出
- [Android]当Activity启动模式为singleTask时的生命周期
- android 中动态创建控件