实现一个简单的自定义Dialog弹窗。
来源:互联网 发布:矩阵模型 编辑:程序博客网 时间:2024/05/09 15:49
自己看了一些资料之后,这个是自己算是第一个比较有点用的自定义控件了吧。
谢了这个之后,对接口回调的理解也有一定的帮助。
不说了,贴代码。比较懒,偷懒了很多。
//这里注意,oncreate方法在dialog.show()之后才会运行,所以要动态设置一些属性的话,必须放在oncreate中,不然会报空。
public class MyDialog extends Dialog { private TextView msg; private String mContent; private TextView mYes; private TextView mNo;
//回调 private MyOkCallBack myOkCallBack; private MyNoCallBack myNoCallBack; //回调 public interface MyOkCallBack { void doSomeOkThing(View view); } public interface MyNoCallBack { void doSomeNoThing(View view); } public MyDialog(Context context) {
//调用父类构造,使用style。 super(context, R.style.mydialog); } public MyDialog(Context context, int themeResId) { super(context, themeResId); } protected MyDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { super(context, cancelable, cancelListener); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
//设置自定义dialog布局。 setContentView(R.layout.my_custom_dialog_layout); initView(); // 外面穿进来的参数必须在这里设置,因为dialog.show()之后才会调用Oncreate方法。 initData(); initEvent(); } private void initData() { if (mContent != null) this.msg.setText(mContent); } private void initEvent() { mYes.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myOkCallBack.doSomeOkThing(v); } }); mNo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myNoCallBack.doSomeNoThing(v); } }); } public void setMsg(String msg) { this.mContent = msg; } private void initView() { mYes = (TextView) findViewById(R.id.tv_yes); mNo = (TextView) findViewById(R.id.tv_no); msg = (TextView) findViewById(R.id.msg); } public void setYesListener(MyOkCallBack ok) { myOkCallBack = ok; } public void setNoListener(MyNoCallBack no) { myNoCallBack = no; }}
自定义样式
<style name="mydialog" parent="android:style/Theme.Dialog"> <!--背景透明--> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <!--没有边框--> <item name="android:windowFrame">@null</item> <!--窗口浮动--> <item name="android:windowIsFloating">true</item> <!--背景变暗--> <item name="android:backgroundDimEnabled">true</item> </style>
自定义弹窗布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_centerInParent="true" android:layout_width="300dp" android:layout_height="200dp" android:orientation="vertical" android:background="@drawable/shape_bg" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="自定义Dialog" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#000000"/> <TextView android:id="@+id/msg" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" > <TextView android:id="@+id/tv_yes" android:layout_width="0dp" android:layout_weight="0.5" android:layout_height="wrap_content" android:text="确定" android:gravity="center" /> <TextView android:id="@+id/tv_no" android:layout_width="0dp" android:layout_weight="0.5" android:layout_height="wrap_content" android:gravity="center" android:text="取消" /> </LinearLayout> </LinearLayout></RelativeLayout>
0 0
- 实现一个简单的自定义Dialog弹窗。
- 一个简单的自定义Dialog
- 一个简单的自定义Dialog
- 自定义Dialog的简单实现
- 简单实现自定义Dialog弹窗
- 一个简单的Dialog实现
- android 自定义dialog的简单实现
- Android 自定义Dialog的简单实现
- 简单的自定义一个拥有圆角的Dialog
- 自定义dialog的实现
- 简单快捷的自定义 Dialog
- Android 简单的自定义Dialog
- Android 简单的自定义dialog
- Fragment实现的自定义Dialog
- Dialog自定义布局的实现
- Android 自定义Dialog的实现
- 自定义一个只有一个图片的dialog
- 一个简单的自定义ClassLoader的实现
- Java JDBC
- SpringMVC form表单提交list对象集合
- tableview自动移动了
- spring的aop切面编程初入
- Hibernate - DetachedCriteria 的完整用法
- 实现一个简单的自定义Dialog弹窗。
- 安卓类——使用Bundle在Activity之间传值
- HTTP响应状态码
- 目标检测 RCNN, SPPNet, Fast RCNN, Faster RCNN 总结
- LeetCode OJ-16.3Sum Closest(最接近三数和)
- Java Swing开发知识总结
- windows dll函数的导出
- 学习Unity3D是一件痛并快乐着的事
- Java分割字符串split