在DatePickerDialog Android中禁用今天日期之前的日期?

has*_*him 1 android android-datepicker android-layout

我想在DatePickerDialog中禁用今天日期之前的日期.我是android的新手请建议我怎么能这样做.这是我为DatePickerDialog编写的代码.

 <TextView
            android:id="@+id/tv_arrival"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:text="@string/arrivaldate"/>

        <Button
            android:id="@+id/btn_arrival"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="Set"/>
Run Code Online (Sandbox Code Playgroud)

 Button btn_arrival = (Button) findViewById(R.id.btn_arrival);

        txt_arrival = (TextView) findViewById(R.id.tv_arrival);         
        myCalendar = Calendar.getInstance();          

        final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {

                myCalendar.set(Calendar.YEAR, year);
                myCalendar.set(Calendar.MONTH, monthOfYear);
                myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);

                updateLabel();
            }
        };


        btn_arrival.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                 new DatePickerDialog(MainActivity.this,date , myCalendar
                        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        myCalendar.get(Calendar.DAY_OF_MONTH)).getDatePicker().setMinDate(System.currentTimeMillis() - 1000);

            }

        });
private void updateLabel() {

        String myFormat = "dd.MM.yyyy"; //In which you need put here.
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

        txt_arrival.setText("Arrival Date on:" + sdf.format(myCalendar.getTime()));

    }
Run Code Online (Sandbox Code Playgroud)

请建议我必须做什么.

Ind*_*ile 10

您可以使用此行代码

datePicker.setMinDate(System.currentTimeMillis() - 1000);
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它.我测试了它,它的工作原理

    import android.app.DatePickerDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.DatePicker;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button mButton = (Button)findViewById(R.id.m_button);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                DatePickerDialog mDate = new DatePickerDialog(MainActivity.this, date, 2016, 2, 24);
                mDate.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
                mDate.show();
            }
        });
    }

    final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            view.setMinDate(System.currentTimeMillis() - 1000);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

}