Customize DatePicker. Android

后端 未结 2 596
难免孤独
难免孤独 2020-12-02 00:56

is there the way to customize a DatePicker? That is my Layout-Code.




        
相关标签:
2条回答
  • 2020-12-02 01:19

    You can't customize the default one.

    From User Interface page:

    Android provides a set of fully implemented widgets, like buttons, checkboxes, and text-entry fields, so you can quickly build your UI. Some widgets provided by Android are more complex, like a date picker, a clock, and zoom controls. But you're not limited to the kinds of widgets provided by the Android platform. If you'd like to do something more customized and create your own actionable elements, you can, by defining your own View object or by extending and combining existing widgets.

    Read more in Building Custom Components.

    0 讨论(0)
  • 2020-12-02 01:38

    try this code

    put below code in xml file

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <LinearLayout xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/linear_bottom_par"
            android:background="@color/gray_dark_more"
            android:gravity="center_horizontal"
            android:orientation="vertical">
    
            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    
                <LinearLayout
                    android:id="@+id/linear_date_time"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical">
    
                    <DatePicker
                        android:id="@+id/dlgDatePicker"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
    
                    <TimePicker
                        android:id="@+id/timePicker1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
    
                </LinearLayout>
            </ScrollView>
    
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/linear_bottom_par"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:background="@color/gray_dark_more"
            android:gravity="center"
            android:orientation="vertical">
    
            <LinearLayout
                android:id="@+id/linear_select_time"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/margin_padding_10"
                android:layout_marginEnd="@dimen/margin_padding_20"
                android:layout_marginLeft="@dimen/margin_padding_20"
                android:layout_marginRight="@dimen/margin_padding_20"
                android:layout_marginStart="@dimen/margin_padding_20"
                android:layout_marginTop="@dimen/margin_padding_10"
                android:background="@drawable/orange_ripple_effect"
                android:gravity="center"
                android:orientation="vertical"
                android:padding="@dimen/margin_padding_15">
    
                <TextView
                    android:id="@+id/tv_selecttime"
                    style="@style/textappearance_large_white"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/select_time"
                    android:textStyle="bold" />
            </LinearLayout>
        </LinearLayout>
    
    
    </RelativeLayout>
    

    put below code in your activity or fragment

            final Dialog dialog = new Dialog(ConfirmBookingActivity.this, android.R.style.Theme_Holo_Dialog);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.dialog_date_picker);
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
            dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    
            final DatePicker dp = (DatePicker) dialog.findViewById(R.id.dlgDatePicker);
            final TimePicker tp = (TimePicker) dialog.findViewById(R.id.timePicker1);
    
            LinearLayout linear_select_time = (LinearLayout) dialog.findViewById(R.id.linear_select_time);
    
            dp.setCalendarViewShown(false);
            Calendar cal = Calendar.getInstance();
            cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));
            cal.add(Calendar.HOUR_OF_DAY, 1);
    
            dp.init(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
                @Override
                public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
                    Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
                    calDay = dayOfMonth;
                    calMonth = month + 1;
                    calYear = year;
    
                    checkAndUpdateValue(tp);
                }
            });
    
    
            linear_select_time.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
    
                });
    
    0 讨论(0)
提交回复
热议问题