非常简洁的自定义dialog实现方式(带源码)
2014-05-08 14:13
309 查看
此类中的方法, 都是可以自己定义的,需要什么功能就自己写方法来实现
/** * 自定义dialog * @author Administrator * */ public class CustomDialog{ private TextView title; private TextView detial; private Button cancel; private Button ensure; private Dialog mDialog; private LayoutInflater mInflater; public CustomDialog(Context context) { mDialog = new Dialog(context,R.style.customDialog); //一个无title样式 mInflater = LayoutInflater.from(context); View dialogView = mInflater.inflate(R.layout.custom_dialog, null); //引入自定义的布局文件 Window window = mDialog.getWindow(); window.setContentView(dialogView); findView(window); } private void findView(Window window) { title = (TextView)window.findViewById(R.id.custom_dialog_title); detial = (TextView)window.findViewById(R.id.custom_dialog_detial); cancel = (Button)window.findViewById(R.id.custom_dialog_cancel); ensure = (Button)window.findViewById(R.id.custom_dialog_ensure); } /** * 左边按钮点击事件 * @param listener */ public void setLeftOnClick(View.OnClickListener listener){ cancel.setOnClickListener(listener); } /** * 右边按钮点击事件 * @param listener */ public void setRightOnClick(View.OnClickListener listener){ ensure.setOnClickListener(listener); } /** * 设置标题 * @param title */ public void setTitle(String title){ this.title.setText(title); } /** * 设置详情 * @param detial */ public void setDetial(String detial){ this.detial.setText(detial); } /** * 设置左边按钮背景 * @param cancelBg */ public void setCancelBg(int cancelBg){ cancel.setBackgroundResource(cancelBg); } /** * 设置右边按钮背景 * @param cancelBg */ public void setEnsureBg(int ensureBg){ ensure.setBackgroundResource(ensureBg); } /** * 设置隐藏左边按钮背景 * @param cancelBg */ public void setLeftVisible(int ensureBg){ cancel.setVisibility(View.GONE); } public void show(){ mDialog.show(); } public void dismiss(){ mDialog.dismiss(); } }
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/custom_dialog_title" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:background="@drawable/custom_dialog_up_bg" android:gravity="center" android:text="领取成功" android:textColor="@color/black" android:textSize="24sp" /> <TextView android:id="@+id/custom_dialog_detial" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:background="@drawable/custom_dialog_down_bg" android:gravity="center" android:padding="5dp" android:text="恭喜,您已成功领取3元奖金,快去无线苏州“我的余额”模块查询" android:textColor="@color/lottery_gray_word" android:textSize="18sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/custom_dialog_cancel" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/custom_dialog_cancel" /> <Button android:id="@+id/custom_dialog_ensure" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/custom_dialog_ensure" /> </LinearLayout> </LinearLayout>
引用方法
mAttend = (Button)findViewById(R.id.button); title = (EditText)findViewById(R.id.title); mAttend.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { final CustomDialog dialog = new CustomDialog(MainActivity.this); dialog.setLeftOnClick(new OnClickListener(){ @Override public void onClick(View v) { dialog.dismiss(); }}); final String sTitle = title.getText().toString(); if(!"".equals(sTitle)){ dialog.setTitle(sTitle); } dialog.show(); }});
源码下载
相关文章推荐
- 自定义Dialog的几种实现方式
- asp.net实现非常实用的自定义页面基类(附源码)
- 自定义TableViewCell 的方式实现自定义TableView(带源码)
- Android多种方式实现自定义Dialog对话框
- android自定义弹出框实现方式(dialog)
- 自定义Dialog的两种实现方式
- springboot aop 自定义注解方式实现一套完善的日志记录(完整源码)
- Android多种方式实现自定义Dialog对话框
- Android 推荐的自定义 Dialog 实现方式
- 【多级树形菜单-dialog自定义动画弹出方式-手势监听】android实现treeView
- Android多种方式实现自定义Dialog对话框
- Android 自定义简洁高效SwithButton(画图方式实现)
- 完全自定义Android对话框AlertDialog的实现(系统源码)
- ((ios开发学习笔记 十一))自定义TableViewCell 的方式实现自定义TableView(带源码)
- asp.net实现非常实用的自定义页面基类(附源码)
- Android多种方式实现自定义Dialog对话框
- OpenJweb平台中自定义组合查询条件窗口的实现方式(经典之作)
- 【Android进度条】三种方式实现自定义圆形进度条ProgressBar
- Okhttp缓存源码分析以及自定义缓存实现
- Android自定义多节点进度条显示的实现代码(附源码)