2 qq 34001673 qq_34001673 于 2016.02.17 17:18 提问

Android 点击一个区域弹出选择日期

安卓开发中,怎么做到点击一个区域,然后弹出选择出生日期,麻烦大神写的详细点,包括.xml文件和 java文件。谢谢好心人!

5个回答

luochoudan
luochoudan   Ds   Rxr 2016.02.17 18:49
已采纳

java文件
public class DialogTest extends Activity {
private int mYear, mMonth, mDay;
TextView date;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dialog);

    date = (TextView) findViewById(R.id.date);
    date.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            showDialog(0);
        }
    });
}

private final DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        mYear = year;
        String mm;
        String dd;

        mMonth = monthOfYear + 1;
        mm = String.valueOf(mMonth);
        if (mm.length() < 2)
            mm = "0" + mm;

        mDay = dayOfMonth;
        dd = String.valueOf(mDay);
        if (dd.length() < 2)
            dd = "0" + dd;

        date.setText(String.valueOf(mYear) + "-" + mm + "-" + dd);
    }
};

@Override
protected Dialog onCreateDialog(int id) {
    final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);

    switch (id) {
    case 0:
        return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
                mDay);
    }
    return null;
}

}

xml文件
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/date"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:text="点我"/>

之前用过的一个,用xml布局datepicker更方便,多看看书,都有介绍

qq_34001673
qq_34001673 就是这种显示效果看上去太复杂,怎么改成显示简单一些的效果
接近 2 年之前 回复
qq_34001673
qq_34001673 显示了,但是我想要换显示的效果怎么操作啊?
接近 2 年之前 回复
bdmh
bdmh   Ds   Rxr 2016.02.17 17:28

你可以用一个半透明的Activity或者用popupwindow

sinat_31848459
sinat_31848459   2016.02.17 17:35

用android自带控件datePicker就可以

qq_17250009
qq_17250009   2016.02.17 20:08

自定义一个完全透明的View 点击事件里弹出datePicker控件

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.17 20:12

你将你要弹出的日期封装为一个dialog,然后弹出就可以了啊

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!