点击日期选择器(如Google日历)

时间:2016-10-02 15:07:30

标签: android datepicker calendar

所以我想要一个时间和一个日期选择器,当我按下按钮时,当你按下右下方的fab按钮时,谷歌日历就会弹出。将会有一个新窗口显示日期和时间,当您点击其中一个时,会打开一个选择器。

我不确定是否需要创建一个带有时间选择器的片段,只需缩小或者我必须通过代码创建一个。

这是我的代码:

public class NewEventActivity extends 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

上的文字

我希望你明白我的意思

1 个答案:

答案 0 :(得分:0)

嘿,通过使用这两种方法,您可以解决您的问题。只需在textview或edittext中设置日期。

第二种方式,您可以使用this customized 日期选择器。

void showDatePicker() {

    DatePickerDialog datePickerDialog = new DatePickerDialog(
            activity,
            DatePickerDialog.THEME_HOLO_DARK, new mDateSetListener(),
            mYear, mMonth, mDay);
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000L * 60 * 60 * 24 * (36524)
            / 100 * 84);

    datePickerDialog.getDatePicker().setDescendantFocusability(
            DatePicker.FOCUS_BLOCK_DESCENDANTS);

    datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());

    datePickerDialog.setCancelable(false);
    datePickerDialog.setCanceledOnTouchOutside(false);
    datePickerDialog.show();

}


class mDateSetListener implements DatePickerDialog.OnDateSetListener {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
                          int dayOfMonth) {
        mYear = year;
        mMonth = monthOfYear;
        mDay = dayOfMonth;

        mDateBirth.setText((mDay >= 10 ? mDay + "" : "0" + mDay)
                + ""
                + "/"
                + ((mMonth + 1) >= 10 ? (mMonth + 1) + "" : "0"
                + (mMonth + 1)) + "" + "/" + mYear + "");

    }

}

希望这会对你有所帮助。