iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0
Mobile Development

Android 從零開始系列 第 25

[Day25] DatePicker(日期選擇器)

  • 分享至 

  • xImage
  •  

這次要來教的是DatePicker(日期選擇器),這個功能較常在創帳號選擇出生日期時被用到,算是一個實用的小功能,接著就開始進入正題。

XML

先簡單設計出一個頁面,寫出一個Button作為觸發DatePicker的元件,並寫出一個TextView顯示被選取的日期就好。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="日期:"/>

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="選擇日期"/>
</RelativeLayout>

JAVA程式

設計好XML之後,就能開始製作選取日期的功能了。
先做好按鈕的監聽器,接著在觸發功能輸入觸發選取日期的事件,下面先解析一些程式碼的片段。
DatePickerDialog.OnDateSetListener datePicker;日曆的監聽器,用於獲取被選擇的日期
Calendar calendar = Calendar.getInstance();日期的格式
DatePickerDialog用於打開日期選擇器

public class MainActivity extends AppCompatActivity {
    TextView text;
    Button button;
    DatePickerDialog.OnDateSetListener datePicker;
    Calendar calendar = Calendar.getInstance();
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main );

        button = findViewById(R.id.button);
        text = findViewById(R.id.text);

        datePicker = new DatePickerDialog.OnDateSetListener(){
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth){
                calendar.set(Calendar.YEAR, year);
                calendar.set(Calendar.MONTH, monthOfYear);
                calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                String myFormat = "yyyy/MM/dd";
                SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.TAIWAN);
                text.setText("日期:" + sdf.format(calendar.getTime()));
            }
        };

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DatePickerDialog dialog = new DatePickerDialog(MainActivity.this,
                        datePicker,
                        calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH));
                dialog.show();
            }
        });
    }
}

成果

圖片


上一篇
[Day24] 影片播放
下一篇
[Day26] 折線圖圖表繪製
系列文
Android 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言