自定义弹出对话框
来源:互联网 发布:纽约大学石溪分校知乎 编辑:程序博客网 时间:2024/04/30 08:50
今天说的是自定义对话框,我们在开发中最常用的对话框,虽然Android系统有对话框,然而我们的产品和美工,认为UI不是特好看,所以要自己设计,我所做的项目中很多都用到了对话框,所以我给封装了一个类,随调随用,方便,是开发的速度加快,
先看看我们的UI这只是一部分,你可以自己修改界面
关键代码如下:
/** * 自定义dialog * * @param context * @param theme * 主题 * @param content * 主体文字 * @param leftBtnText * 左按钮文字,若为""则隐藏 * @param rightBtnText * 右按钮文字,若为""则隐藏 * @param listener * 回调接口 */public MyDialog(Context context, int theme, String content,String leftBtnText, String rightBtnText,DialogClickListener listener) {super(context, theme);this.context = context;this.content = content;this.leftBtnText = leftBtnText;this.rightBtnText = rightBtnText;this.listener = listener;}public void setTextSize(int size) {dialog_textViewID.setTextSize(size);dialog_textViewID1.setTextSize(size);};@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(R.layout.dialog);tv_restinfo_pop_tel_content = (TextView) findViewById(R.id.tv_restinfo_pop_tel_content);dialog_textViewID1 = (TextView) findViewById(R.id.dialog_textViewID1);dialog_textViewID = (TextView) findViewById(R.id.dialog_textViewID);dialog_textViewID.setOnClickListener(this);dialog_textViewID1.setOnClickListener(this);initView();initDialog(context);}/** * 设置dialog的宽为屏幕的3分之1 * * @param context */private void initDialog(Context context) {//使其点击界面其他位置不消失setCanceledOnTouchOutside(false);//获取返回键使其失效setOnKeyListener(new OnKeyListener() {@Overridepublic boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK&& event.getRepeatCount() == 0) {return true;} else {return false;}}});//设置布局所占屏幕的大小,有利于适配WindowManager windowManager = this.getWindow().getWindowManager();Display display = windowManager.getDefaultDisplay();WindowManager.LayoutParams lp = this.getWindow().getAttributes();lp.width = (int) (display.getWidth() / 6 * 5); //// 设置宽度this.getWindow().setAttributes(lp);}private void initView() {tv_restinfo_pop_tel_content.setText(content);//判断输入的是否有值if (leftBtnText.equals(""))dialog_textViewID.setVisibility(View.GONE);elsedialog_textViewID.setText(leftBtnText);//判断输入的是否有值if (rightBtnText.equals(""))dialog_textViewID1.setVisibility(View.GONE);elsedialog_textViewID1.setText(rightBtnText);}//监听左右键的接口public interface DialogClickListener {void onLeftBtnClick(Dialog dialog);void onRightBtnClick(Dialog dialog);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.dialog_textViewID:listener.onLeftBtnClick(this);break;case R.id.dialog_textViewID1:listener.onRightBtnClick(this);break;default:break;}}下载地址
0 0
- 弹出自定义模式对话框
- 自定义弹出对话框
- c# 弹出自定义对话框
- Android弹出自定义对话框
- AlertDialog自定义弹出对话框
- 自定义弹出对话框
- android 弹出对话框 弹出自定义对话框
- 【工具类】自定义弹出对话框
- Popup弹出自定义布局对话框
- ios 自定义弹出对话框效果
- android自定义底部弹出对话框
- 微信小程序-弹出自定义对话框
- Xamarin.Form 弹出自定义对话框
- android自定义对话框和弹出框
- Android中Dialog实现自定义弹出对话框
- 【android学习】自定义的Builder弹出对话框
- 自定义一个View作为弹出对话框
- C++;MFC点击弹出自定义对话框
- Linux如何查看进程、杀死进程、启动进程等常用命令
- 夏天的味道 ka
- 留下一点点 如果还可以做你的朋友 梦想就让她继续
- Android 多线程-----AsyncTask详解
- 【leetcode】Letter Combinations of a Phone Number
- 自定义弹出对话框
- CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
- [IDE] Zoran coach 11s ...
- 从尾到头打印链表
- ubuntu14.04 将vim配置成c++ IDE
- java 文件排序
- EA+svn实现UML的版本控制
- js封装java对象为json,
- InitializeWinIo Winio64在64位系统中初始化失败问题