有自定义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中,如果它也有可能我想要月份的短名称而不是数字。
我试图找到,怎么做,但没有成功。
谢谢,
穆尔
答案 0 :(得分:2)
您无法自定义默认值。
来自User Interface页面:
Android提供了一组完全实现的小部件,如按钮,复选框和文本输入字段,因此您可以快速构建UI。 Android提供的一些小部件更复杂,如日期选择器,时钟和缩放控件。但您不仅限于Android平台提供的各种小部件。如果您想要做更多自定义的事情并创建自己的可操作元素,您可以通过定义自己的View对象或扩展和组合现有的小部件来实现。
在Building Custom Components中阅读更多内容。
答案 1 :(得分:0)
尝试此代码
将以下代码放入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) {
});