android 表示形式 2つの日付ピッカーでカスタムダイアログを作成するにはどうすればよいですか?




timepickerdialog (3)

私はちょうど趣味としてAndroidを学び始めました.2つの日付ピッカーを持つダイアログを作成したいと思います

final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.data_picker_dialog);
dialog.setTitle(R.string.date_period_picker);
dialog.show();
return true;

ダイアログから選択した値を取得するにはどうすればよいですか? ダイアログにOK / Cancelボタンを自動的に含めることはできますか?

このような機能(開始日と終了日/期間の選択)を持つライブラリはありますか?


DialogsPickers最初に読むのが最善でしょう。

実装に関しては、2つのボタンがあります.1つは開始日の日付選択を表示し、もう1つは終了日付の表示を示します。

編集:1つのダイアログで2つの日付ピッカーを実際に表示したい場合は、ここで例を示します。 まず、カスタムXMLレイアウトを作成します。

/res/layout/custom_date_picker.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <DatePicker
        android:id="@+id/dpStartDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:calendarViewShown="false" />

    <DatePicker
        android:id="@+id/dpEndDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:calendarViewShown="false" />

</LinearLayout>

次に、ダイアログで上記のレイアウトを使用します。

// These variables will hold the date values later
private int startYear, startMonth, startDay, endYear, endMonth, endDay;

/**
 * Displays the start and end date picker dialog
 */
public void showDatePicker() {
    // Inflate your custom layout containing 2 DatePickers
    LayoutInflater inflater = (LayoutInflater) getLayoutInflater();
    View customView = inflater.inflate(R.layout.custom_date_picker, null);

    // Define your date pickers
    final DatePicker dpStartDate = (DatePicker) customView.findViewById(R.id.dpStartDate);
    final DatePicker dpEndDate = (DatePicker) customView.findViewById(R.id.dpEndDate);

    // Build the dialog
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(customView); // Set the view of the dialog to your custom layout
    builder.setTitle("Select start and end date");
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {
            startYear = dpStartDate.getYear();
            startMonth = dpStartDate.getMonth();
            startDay = dpStartDate.getDayOfMonth();
            endYear = dpEndDate.getYear();
            endMonth = dpEndDate.getMonth();
            endDay = dpEndDate.getDayOfMonth();
            dialog.dismiss();
        }});

    // Create and show the dialog
    builder.create().show();
}

最後に、 showDatePicker()呼び出すだけでこのダイアログを表示することができます。


あなたのレイアウトにも同じです

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<DatePicker
      android:id="@+id/datePicker1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />

<DatePicker
      android:id="@+id/datePicker2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
</LinearLayout>

ちょうどあなたのXMLレイアウト(data_picker_dialog)に日付ピッカーを作成する。 あなたのIDからデータを取得する





dialog