【问题标题】:Customize DatePicker. Android自定义日期选择器。安卓
【发布时间】:2010-12-01 14:53:33
【问题描述】:

有没有自定义 DatePicker 的方法?那是我的布局代码。

<?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="wrap_content" 
            android:layout_margin="5dp"/>
    </LinearLayout>
</ScrollView>

在这种情况下,DatePicker 的日期格式为 MM-DD-YYYY,我希望将其设置为 DD-MM-YYYY,如果可能的话,我希望使用月份的短名称而不是数字。

我试图找到,怎么做,但没有成功。

谢谢,

穆尔

【问题讨论】:

标签: android layout datepicker


【解决方案1】:

你不能自定义默认的。

来自User Interface页面:

Android 提供了一组完全实现的小部件,例如按钮、复选框和文本输入字段,因此您可以快速构建您的 UI。 Android 提供的一些小部件更复杂,例如日期选择器、时钟和缩放控件。但您不仅限于 Android 平台提供的各种小部件。如果您想做一些更自定义的事情并创建自己的可操作元素,您可以通过定义自己的 View 对象或扩展和组合现有小部件来实现。

Building Custom Components阅读更多内容。

【讨论】:

    【解决方案2】:

    试试这个代码

    将以下代码放入 xml 文件中

    <?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>
    

    将以下代码放入您的活动或片段中

            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) {
    
                });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多