自己定义控件(二)自己定义Dialog

本节要实现:自己定义一个Dialog

结果例如以下:

步 骤

1.配置register_dialog.xml

以下是一个自己定义的dialog。

功能是:点击dialog所依附的activity上的“注冊”button,弹出此对话框。

<?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="match_parent"
    android:orientation="vertical"
    android:background="#fff" >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:text="确认手机号码"
        android:textColor="#000"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginTop="30dp"
        android:text="我们将发送验证码短信到这个号码:\n+86 XXXXXXXXXXX"
        android:textColor="#000"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_marginTop="40dp"
        android:orientation="horizontal"
         >
         <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:layout_weight="1"
            android:gravity="center"
             >
            <Button
                android:id="@+id/register_dialog_ok_btn"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:background="#0066cc"
                android:gravity="center"
                android:text="确定"
                android:textColor="#fff"/>
         </LinearLayout>
         <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:layout_weight="1"
            android:gravity="center"
             >
            <Button
                android:id="@+id/register_dialog_cancel_btn"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:background="#0066cc"
                android:gravity="center"
                android:text="取消"
                android:textColor="#fff"/>
         </LinearLayout>
    </LinearLayout>
</LinearLayout>

2.Java代码演示样例

(这里仅仅贴出和对话框有关的代码,即一个处理自己定义Dialog的方法)

//此方法用于处理自己定义对话框
        private void processCustomDialog(AlertDialog.Builder builder){
            LayoutInflater inflater=getLayoutInflater();
            final View view=inflater.inflate(R.layout.register_dialog, null);//获取自己定义对话框资源
            //获取自己定义dialog下的确定和取消button资源
            Button okBtnInDialog=(Button)view.findViewById(R.id.register_dialog_ok_btn);
            Button cancelBtnInDialog=(Button)view.findViewById(R.id.register_dialog_cancel_btn);

            builder.setIcon(R.drawable.icon);
            builder.setView(view);
            builder.create();
            builder.show();

            /**
             * 以下为自己定义dialog下的确定和取消button设置点击事件
             */
            okBtnInDialog.setOnClickListener(new android.view.View.OnClickListener() {//以下为自己定义dialog下的确定button设置点击事件

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent();
                    intent.setClass(Register.this,Vertify.class);
                    startActivity(intent);
                    MyThread thread = new MyThread();
                    thread.start();
                }
            });
            cancelBtnInDialog.setOnClickListener(new android.view.View.OnClickListener() {//以下为自己定义dialog下的取消button设置点击事件

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub

                }
            });

        }

值得注意的是:在获取Dialog上的button等资源时。使用的是view.findViewById(R.id.button)。这才表明你是在对话框View中寻找资源。倘若直接用findViewById(R.id.button),表明在此activity里找资源ID,能找到才怪!

时间: 2024-12-28 21:06:42

自己定义控件(二)自己定义Dialog的相关文章

【android自己定义控件】自己定义View属性

1.自己定义View的属性 2.在View的构造方法中获得我们自己定义的属性 3.重写onMesure 4.重写onDraw 3这个步骤不是必须,当然了大部分情况下还是须要重写的. 1.自己定义View的属性,首先在res/values/  下建立一个attrs.xml , 在里面定义我们的属性和声明我们的整个样式. <?xml version="1.0" encoding="utf-8"?> <resources> <attr nam

自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现

前言:我最大的梦想,就是有一天.等老了坐在摇椅上回望一生,有故事给孩子们讲--. 相关文章: <Android自己定义控件三部曲文章索引>:http://blog.csdn.net/harvic880925/article/details/50995268 经过上篇的铺垫.这篇就開始正式開始FlowLayout的开发啦,还是先给大家上上效果: 从效果图中能够看到,底部container的布局方式应该是layout_width="match_parent",layout_he

Android 自己定义控件开发入门(二)

上一次我们讲了一堆实现自己定义控件的理论基础.列举了View类一些能够重写的方法,我们对这些方法的重写是我们继承View类来派生自己定义控件的关键 我通过一个最简单的样例给大家展示了这一个过程,不管是多么复杂的自己定义控件.思路总是这样子的,可是由于我们只重写了onDraw方法使得大家认为怪怪的.作为一个控件,我们竟然还要为了他的实现为其添加麻烦的监听,这就不能叫做控件了. 以下再给大家介绍一个常常重写的方法法:publicboolean onTouchEvent (MotionEvent ev

【Android】自己定义控件——仿天猫Indicator

今天来说说类似天猫的Banner中的小圆点是怎么做的(图中绿圈部分) 在学习自己定义控件之前,我用的是很二的方法,直接在布局中放入多个ImageView,然后代码中依据Pager切换来改变图片.这样的方法尽管能够在切换完毕后正确显示小圆点,可是却做不到例如以下图中的切换中的状态显示: 今天学到了自己定义控件,正好能够把这个坑填上. 说一下思路: 在ViewPager翻动的时候,会调用 public void onPageScrolled(int position, float positionO

自己定义控件-画板,橡皮擦,刮刮乐

画板效果图 页面代码 public class ActionerView extends View { private Paint mPaint = new Paint(); private Path mPath = new Path();//手指滑动路径 private Canvas mCanvas;//缓存画布 private Bitmap mBitmap;//缓存图片 private float pointX, pointY;//触点坐标 public ActionerView(Conte

android 自己定义控件

Android自己定义View实现非常easy 继承View,重写构造函数.onDraw.(onMeasure)等函数. 假设自己定义的View须要有自己定义的属性.须要在values下建立attrs.xml. 在当中定义你的属性. 在使用到自己定义View的xml布局文件里须要增加xmlns:前缀="http://schemas.android.com/apk/res/你的应用所在的包路径". 在使用自己定义属性的时候.使用前缀:属性名,如my:textColor="#FF

Android自己定义控件:进度条的四种实现方式

前三种实现方式代码出自: http://stormzhang.com/openandroid/2013/11/15/android-custom-loading/ (源代码下载)http://download.csdn.net/detail/chaoyu168/9616035 近期一直在学习自己定义控件,搜了很多大牛们Blog里分享的小教程.也上GitHub找了一些类似的控件进行学习.发现读起来都不太好懂,就想写这么一篇东西作为学习笔记吧. 一.控件介绍: 进度条在App中非经常见,比例如以下载

自己定义控件三部曲视图篇(一)——測量与布局

前言:生命总是要有信仰,有梦想才干一直前行.哪怕走的再慢,也是在前行. 相关文章: <Android自己定义控件三部曲文章索引>:http://blog.csdn.net/harvic880925/article/details/50995268 今天给大家讲讲有关自己定义布局控件的问题,大家来看这样一个需求,你须要设计一个container,实现内部控件自己主动换行.即里面的控件能够依据长度来推断当前行是否容得下它,进而决定是否转到下一行显示.效果图例如以下 在上图中,全部的紫色部分是Flo

git-osc自己定义控件之:CircleImageView

git-osc自己定义控件之:CircleImageView 一.CircleImageView的使用 在项目中能够发现,用户的头像都是圆形的.感觉非常好奇,昨天最终发现了,原来是自定了一个ImageView.先学习下怎样使用,使用过程例如以下: 创建属性文件:attrs.xml,创建路径为-- res/values/attrs.xml .格式例如以下: <?xml version="1.0" encoding="utf-8"?> <resourc

Android自己定义控件之轮播图控件

背景 近期要做一个轮播图的效果.网上看了几篇文章.基本上都能找到实现,效果还挺不错,可是在写的时候感觉每次都要单独去又一次在Activity里写一堆代码.于是自己封装了一下.这里仅仅是做了下封装成一个控件,不必每次反复写代码了. 效果图 实现分析 轮播图的功能就是实现左右滑动的广告.图片信息展示,那我们就用ViewPager来实现,由于考虑到用户体验,我们还须要在以下加一个指示器来标示滑动到了第几张轮播图.指示器我们能够用一个线性布局来依据要展示的轮播图设置显示的View,我们要做这种一个控件没