基于上一篇写的UserBirthdayDialog

来源:互联网 发布:中国新歌声网络直播权 编辑:程序博客网 时间:2024/04/19 20:20
从下部弹上来的UserBirthdayDialog

import java.util.Calendar;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.Gravity;import android.view.View;import android.view.Window;import android.view.WindowManager;import com.widget.wheel.NumericWheelAdapter;import com.widget.wheel.OnWheelScrollListener;import com.widget.wheel.WheelView;import com.yirui.youbao.app.R;/** *  * @author pythoner *  */public class UserBirthdayDialog extends Dialog{    private Context context;    private WheelView year, month, day;    private String date;    public UserBirthdayDialog(Context context, String date)    {        this(context, R.style.Theme_Dialog_From_Bottom, date);        // TODO Auto-generated constructor stub    }    public UserBirthdayDialog(Context context, int theme, String date)    {        super(context, theme);        // TODO Auto-generated constructor stub        this.context = context;        this.date = date;        init();    }    private void init()    {        this.setCanceledOnTouchOutside(true);        this.setCancelable(true);    }    @Override    protected void onCreate(Bundle savedInstanceState)    {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.dialog_user_birthday);        initViews();        initValues();    }    private void initViews()    {        findViewById(R.id.btn_left).setOnClickListener(clickListener);        findViewById(R.id.btn_right).setOnClickListener(clickListener);        String icurYear, icurMonth, icurDay;        Calendar c = Calendar.getInstance();        int curYear = c.get(Calendar.YEAR);        if (date == null || date.length() < 10)        {// 格式不正确            int curMonth = c.get(Calendar.MONTH);            int curDay = c.get(Calendar.DAY_OF_MONTH);            icurYear = String.valueOf(curYear);            icurMonth = String.valueOf(curMonth + 1);            icurDay = String.valueOf(curDay);        }        else        {// 年月日            icurYear = date.substring(0, 4);            icurMonth = date.substring(5, 7);            icurDay = date.substring(8, 10);        }        year = (WheelView) findViewById(R.id.year);        year.setAdapter(new NumericWheelAdapter(curYear - 100, curYear));        // year.setLabel("年");        year.setCurrentItem(Integer.parseInt(icurYear) - Integer.parseInt(year.getAdapter().getItem(0)));        month = (WheelView) findViewById(R.id.month);        month.setAdapter(new NumericWheelAdapter(1, 12));// "%02d"        // month.setLabel("月");        month.setCyclic(true);        month.setCurrentItem(Integer.parseInt(icurMonth) - 1);        int daysOfMounth = getDaysOfMounth();        day = (WheelView) findViewById(R.id.day);        day.setAdapter(new NumericWheelAdapter(1, daysOfMounth));        // day.setLabel("日");        day.setCyclic(true);        day.setCurrentItem(Integer.parseInt(icurDay) - 1);        OnWheelScrollListener scrollListener = new OnWheelScrollListener()        {            public void onScrollingStarted(WheelView wheel)            {            }            public void onScrollingFinished(WheelView wheel)            {                int daysOfMounth = getDaysOfMounth();                day.setAdapter(new NumericWheelAdapter(1, daysOfMounth));            }        };        year.addScrollingListener(scrollListener);        month.addScrollingListener(scrollListener);        // day.addScrollingListener(scrollListener);    }    private void initValues()    {        // 不能写在init()中        Window window = getWindow();        WindowManager.LayoutParams lp = window.getAttributes();        DisplayMetrics dm = context.getResources().getDisplayMetrics();        lp.width = dm.widthPixels;        lp.gravity = Gravity.BOTTOM;        window.setAttributes(lp);    }    private int getDaysOfMounth()    {        int mMonth = Integer.parseInt(month.getAdapter().getItem(month.getCurrentItem()));        switch (mMonth)        {            case 1:            case 3:            case 5:            case 7:            case 8:            case 10:            case 12:                return 31;            case 4:            case 6:            case 9:            case 11:                return 30;            case 2:                int mYear = Integer.parseInt(year.getAdapter().getItem(year.getCurrentItem()));                if (mYear % 4 == 0 && mYear % 100 != 0 || mYear % 400 == 0)                {                    return 29;                }                else                {                    return 28;                }        }        return -1;    }    View.OnClickListener clickListener = new View.OnClickListener()    {        @Override        public void onClick(View v)        {            // TODO Auto-generated method stub            switch (v.getId())            {                case R.id.btn_left:                    dismiss();                    break;                case R.id.btn_right:                    String mYear = year.getAdapter().getItem(year.getCurrentItem());                    String mMonth = month.getAdapter().getItem(month.getCurrentItem());                    String mDay = day.getAdapter().getItem(day.getCurrentItem());                    if (mDay == null || mDay.length() == 0)                    {                        mDay = "1";                    }                    if (Integer.parseInt(mMonth) < 10)                    {                        mMonth = "0" + mMonth;                    }                    if (Integer.parseInt(mDay) < 10)                    {                        mDay = "0" + mDay;                    }                    if (onOKClickListener != null)                    {                        onOKClickListener.onOKClick(v, mYear, mMonth, mDay);                    }                    dismiss();                    break;                default:                    break;            }        }    };    private OnOKClickListener onOKClickListener;    public interface OnOKClickListener    {        public void onOKClick(View v, String year, String month, String day);    }    public void setOnOKClickListener(OnOKClickListener onOKClickListener)    {        this.onOKClickListener = onOKClickListener;    }}


<style name="Theme_Dialog_From_Bottom" parent="@android:style/Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowAnimationStyle">@style/dialog_animation</item>        <item name="android:backgroundDimEnabled">true</item>        <item name="android:windowBackground">@android:color/transparent</item>    </style>    <style name="dialog_animation" parent="@android:style/Animation.Dialog">        <item name="android:windowEnterAnimation">@anim/push_bottom_in</item>        <item name="android:windowExitAnimation">@anim/push_bottom_out</item>    </style>


至于push_bottom_in.xml和push_bottom_out.xml见http://gundumw100.iteye.com/blog/2163571
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 内衣扣的位置脊柱疼怎么办 练完瑜伽颈椎疼怎么办 乳胶枕头太高了怎么办 枕头太高脖子痛怎么办 颈椎突出症状缓解后怎么办 外痔疼的的历害怎么办 小肚子疼得历害怎么办 练瑜伽伤到颈椎怎么办 鼻子干口干胃烧怎么办 颈椎病压迫神经引起手麻怎么办 4个月婴儿睡觉少怎么办 晚上睡觉睡不好老是醒来怎么办 吃了没熟的香蕉怎么办 70岁父母老吵架怎么办 怀孕七个月晚上睡不着怎么办 九个月宝宝睡眠不好怎么办 一个月的宝宝放不下怎么办 宝宝被吓了发烧怎么办 体内火气重睡不着觉怎么办 宝宝睡觉一直翻身发出声音怎么办 严重失眠怎么办整夜睡不着觉 腿疼得睡不着觉怎么办 19岁晚上睡不着该怎么办 工作累的想哭怎么办 心累迷茫想哭怎么办 白天很累晚上又睡不着怎么办 发型睡觉压乱了怎么办 通宵一夜第二天怎么办 夏天了腿脚还凉怎么办 咖啡色三天了月经还是下不来怎么办 睡觉姿势不对腰疼怎么办 来月经吃了香瓜怎么办 减肥期间晚上有饭局怎么办 减肥期间遇到晚上聚餐怎么办 婴儿脸不向上睡怎么办 睡觉压奶了疼怎么办 堵奶了挤不下来怎么办 孕36周胎儿腿短怎么办 孕晚期胎儿腿短怎么办 孕晚期宝宝腿短怎么办 手劳累过度麻痛怎么办