открыть время / datePicker на кнопку нажмите, как Google Календарь делает

так что я хочу, чтобы время и дата выбора, чтобы выскочить, когда я нажимаю на кнопку Смотреть Календарь google делает, когда вы нажимаете кнопку fab в правом нижнем углу. Там будет новое окно, которое показывает дату и время, и когда вы нажмете на один из них открывается выбор.

Im не уверен, если мне нужно создать фрагмент с выбором времени в нем и просто сделать размер меньше или если я должен создать один с помощью кода.

Это мой код:

public class NewEventActivity расширяет AppCompatActivity {

private LayoutInflater inflater;
private String[] arraySpinner;
private Button date_from;
private Button date_to;
private Button time_from;
private Button time_to;
private EditText title;
private EditText invite;



protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.new_event_fragment);
    findviewbyids();
    initPickers();

}

public void findviewbyids(){
    date_from    = (Button) findViewById(R.id.bt_date_from);
    time_from    = (Button) findViewById(R.id.bt_time_from);
    date_to  = (Button) findViewById(R.id.bt_date_to);
    time_to  = (Button) findViewById(R.id.bt_time_to);
    title  = (EditText) findViewById(R.id.et_title);
    invite  = (EditText) findViewById(R.id.et_invite);

}

public void initPickers(){
    Date today = new Date();
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
    DateFormat tf = new SimpleDateFormat("HH:mm:ss");


    String reportDate = df.format(today);
    String reportTime = tf.format(today);

    date_from.setText(reportDate);
    time_from.setText(reportTime);
    date_to.setText(reportDate);
    time_to.setText(reportTime);

    date_from.setVisibility(View.VISIBLE);
    date_to.setVisibility(View.VISIBLE);
    time_from.setVisibility(View.VISIBLE);
    time_to.setVisibility(View.VISIBLE);

    date_from.setBackgroundColor(Color.TRANSPARENT);
    date_to.setBackgroundColor(Color.TRANSPARENT);
    time_from.setBackgroundColor(Color.TRANSPARENT);
    time_to.setBackgroundColor(Color.TRANSPARENT);

    Spinner group = (Spinner) findViewById(R.id.sp_group);

    this.arraySpinner = new String[] {
            "1", "2", "3", "4", "5"
    };

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, arraySpinner);
    group.setAdapter(adapter);


    date_from.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {


        }
    });


}

}

теперь, когда я нажимаю на кнопку date_from, datePicker должен появиться, и после установки даты он должен перезаписать текст на date_from

я надеюсь, что вы получите то, что я имею в виду

Обновить:

хорошо, я решил это так:

@Override
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    if (id == 999) {
        df.format(today);
        month = today.getMonth();
        year = today.getYear();
        day = today.getDay();
        DatePickerDialog dlg = new DatePickerDialog(this, myDateListener, year, month, day);
        return dlg;
    }
    return null;
}

private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
        year = arg1;
        month = arg2;
        day = arg3;
        Date date = new Date(year,month,day);
        df.format(date);
        reportDate = df.format(date);
        date_from.setText(reportDate);
    }
};

теперь у меня есть эти проблемы:
почему-то, когда появляется диалог, он говорит мне, что это год 116 и что у нас есть пятница 3-го.

когда я выбираю дату, то, например, 6.10.2016 моя кнопка показывает 3800/00/06

так что это означает, что он получает только правильный день.

но почему?

1 ответ