Android Studio 日期選擇對話框 DatePickerDialog 教學
如果你想要讓使用者告知日期
但是如果使用 EditText 讓使用者輸入,不方便也很麻煩,
而且使用者的格式也容易出錯,
所以可以使用 DatePickerDialog 就可以避免以上的麻煩。
DatePickerDialog 是一個可以提供使用者簡單操作的設定日期介面
程式碼
首先在activity_main.xml 上面建立一個Button跟一個TextView
activity_main.xml
接下來切換至MainActivity.java
MainActivity.java
說明
DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener listener, int year, int month, int dayOfMonth)
這裡會逐一說明DatePickerDialog的各個參數
第一個參數是 Context ,也就是說必須把 MainActivity 本身或者 Context 物件傳入。
第二個參數是 OnDateSetListener,這邊是實作 OnDateSetListener 這個介面的事件, 它提供使用者操控完日期介面後,所傳回的日期。
第三個是現在是西元幾年,我們可以透過 Canlendar 的幫忙得到這個資訊。
第四個是現在是幾月,我們可以透過 Canlendar 的幫忙得到這個資訊。
最後一個參數是現在是幾號,我們可以透過 Canlendar 的幫忙得到這個資訊。
接著上面有多一個 setDateFormat 的方法,
這個方法是可以設置你想要設置的日期格式,
我們將這個格式包裝成一個方法,
透過這個方法回傳我們所需要的字串。
這樣一來,你想要的日期就會變成年-月-日的呈現方式在View上面
執行畫面
選取後
以上就是簡單的介紹了DatePickerDialog基本操作了。
但是如果使用 EditText 讓使用者輸入,不方便也很麻煩,
而且使用者的格式也容易出錯,
所以可以使用 DatePickerDialog 就可以避免以上的麻煩。
DatePickerDialog 是一個可以提供使用者簡單操作的設定日期介面
程式碼
首先在activity_main.xml 上面建立一個Button跟一個TextView
activity_main.xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date"
android:id="@+id/dateButton"
/><TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dateText"
/>
接下來切換至MainActivity.java
MainActivity.java
public class MainActivity extends AppCompatActivity { private int mYear, mMonth, mDay;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView dateText = (TextView)findViewById(R.id.dateText);
Button dateButton = (Button)findViewById(R.id.dateButton);
dateButton.setOnClickListener(new View.OnClickListener(){ @Override
public void onClick(View view) { final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override
public void onDateSet(DatePicker view, int year, int month, int day) { String format = "您設定的日期為:"+ setDateFormat(year,month,day); dateText.setText(format); } }, mYear,mMonth, mDay).show(); } });
} private String setDateFormat(int year,int monthOfYear,int dayOfMonth){
return String.valueOf(year) + "-"
+ String.valueOf(monthOfYear + 1) + "-"
+ String.valueOf(dayOfMonth);
}
}
說明
DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener listener, int year, int month, int dayOfMonth)
這裡會逐一說明DatePickerDialog的各個參數
第一個參數是 Context ,也就是說必須把 MainActivity 本身或者 Context 物件傳入。
第二個參數是 OnDateSetListener,這邊是實作 OnDateSetListener 這個介面的事件, 它提供使用者操控完日期介面後,所傳回的日期。
第三個是現在是西元幾年,我們可以透過 Canlendar 的幫忙得到這個資訊。
第四個是現在是幾月,我們可以透過 Canlendar 的幫忙得到這個資訊。
最後一個參數是現在是幾號,我們可以透過 Canlendar 的幫忙得到這個資訊。
接著上面有多一個 setDateFormat 的方法,
這個方法是可以設置你想要設置的日期格式,
我們將這個格式包裝成一個方法,
透過這個方法回傳我們所需要的字串。
這樣一來,你想要的日期就會變成年-月-日的呈現方式在View上面
執行畫面
選取後
以上就是簡單的介紹了DatePickerDialog基本操作了。
您好,抱歉想請問一下,
回覆刪除如果是要在選取完日期後,日期顯示在原本DATE Button的地方要如何修改才對呢?