开发者

Customize DatePicker. Android

开发者 https://www.devze.com 2023-01-27 15:38 出处:网络
is there the way to customize a DatePicker? That is my Layout-Code. <?xml version=\"1.0\" encoding=\"utf-8\"?>

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

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" 
        android:orientation="vertical">
        <DatePicker 
            android:id="@+id/ad_date_picker"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_margin="5dp"/>
        <TimePicker         
            android:id="@+id/ad_time_picker"
            android:layout_width="wrap_content"
            android:layout_height="wr开发者_如何学运维ap_content" 
            android:layout_margin="5dp"/>
    </LinearLayout>
</ScrollView>

In that case the date format of the DatePicker is MM-DD-YYYY and I'd like to have it in DD-MM-YYYY, and if it's also possible I'd like to have month's shortname instead of number.

I've tried to find, how to do it, but without success.

Thank you,

Mur


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.


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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号