DatePickerDialog在中文系统下显示英文

c929297245 2016-04-07 03:40:43
DatePickerDialog 这个在中文系统下显示英文,后来我准备重写这个控件结果发了这个问题 在月 的选择无法改变还是英文 我想知道这个可以重写吗? 有相对应demo参考不各位大神
...全文
1153 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
simleyang 2017-11-01
  • 打赏
  • 举报
回复
方法3没有解决,请问楼主怎么解决的?
qq_33285535 2017-09-07
  • 打赏
  • 举报
回复
3楼正解。。。
流浪兔灬 2016-06-10
  • 打赏
  • 举报
回复
用了3楼的方法还是不行啊
流浪兔灬 2016-06-10
  • 打赏
  • 举报
回复
我也遇上了这个问题 同样求解啊
  • 打赏
  • 举报
回复
刚才试了3楼的方法,可以解决问题,真是相见恨晚
  • 打赏
  • 举报
回复
中文的环境下控件显示英文,这是android的bug吗?我也弄了挺久,先改了语言环境,卸载应用后, 重装了可以正常显示中文,但过一阵子就变英文了,都找不到原因。
ChrisYuu 2016-04-26
  • 打赏
  • 举报
回复
可以在DatePickerDialog显示之前重新设置一下Locale Locale locale = getResources().getConfiguration().locale; Locale.setDefault(locale);
s478853630 2016-04-08
  • 打赏
  • 举报
回复
运行效果:


xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_ffffff_corners"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical" >

<TextView
android:id="@+id/txtDateTime"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dip"
android:layout_marginTop="12dip"
android:gravity="center"
android:text="@string/selectDate"
android:textColor="#ff6160"
android:textSize="15sp" />

<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/Cc6c6c6" />

<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:calendarViewShown="false" />

<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />

<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/Cc6c6c6" />

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="48dip"
android:paddingBottom="7dip" >

<Button
android:id="@+id/btnCancel"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/item_clicked"
android:text="@string/cancel"
android:textColor="@color/C18B4ED"
android:textSize="15sp" />

<View
android:layout_width="0.5dip"
android:layout_height="fill_parent"
android:background="@color/Cc6c6c6" />

<Button
android:id="@+id/btnConfirm"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/item_clicked"
android:text="确定"
android:textColor="@color/C18B4ED"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>

</RelativeLayout>



可能代码提供不完整,但你可以参考一下
s478853630 2016-04-08
  • 打赏
  • 举报
回复
/**
	 * 日期时间选择框框
	 * 
	 * @param defDate
	 *            默认显示时间
	 * @param minDate
	 *            最小时间限制
	 * @param maxDate
	 *            最大时间限制
	 * @param activity
	 *            容器
	 * @param listener
	 *            选完时间后的回调
	 * @param title
	 *            标题
	 * @throws Exception
	 */
	public static void showDateTime(Date defDate, final Date minDate, final Date maxDate, final AbstractActivity activity,
			final DialogCloseListener listener, final String title) throws Exception {
		View viewDialog = activity.getLayoutInflater().inflate(R.layout.dialog_datetime, null);
		final DatePicker datePicker = (DatePicker) viewDialog.findViewById(R.id.datePicker);
		final TimePicker timePicker = (TimePicker) viewDialog.findViewById(R.id.timePicker);
		final TextView txtDateTime = (TextView) viewDialog.findViewById(R.id.txtDateTime);
		txtDateTime.setText("请设置" + title);
		final Calendar calendar = Calendar.getInstance();
		SimpleDateFormat format = DateUtil.formatDate();
		if (null != defDate) {
			calendar.setTime(defDate);
		}
		int year = calendar.get(Calendar.YEAR);
		int monthOfYear = calendar.get(Calendar.MONTH);
		int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
		datePicker.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener() {
			public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
				calendar.set(Calendar.YEAR, year);
				calendar.set(Calendar.MONTH, monthOfYear);
				calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
				txtDateTime.setText(title + ":" + DateUtil.formatDateTimeJieStr(calendar.getTime()));
			}
		});
		if (null != minDate) {
			datePicker.setMinDate(format.parse(format.format(minDate)).getTime());
		}
		if (null != maxDate) {
			datePicker.setMaxDate(format.parse(format.format(maxDate)).getTime());
		}
		timePicker.setIs24HourView(true);
		timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
		timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
		timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
			public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
				calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
				calendar.set(Calendar.MINUTE, minute);
				txtDateTime.setText(title + ":" + DateUtil.formatDateTimeJieStr(calendar.getTime()));
				if (null != minDate && DateUtil.getDateDiff(calendar.getTime(), minDate) > 0) {
					resetDate(minDate);
				}
				if (null != maxDate && DateUtil.getDateDiff(maxDate, calendar.getTime()) > 0) {
					resetDate(maxDate);
				}
			}

			private void resetDate(Date date) {
				calendar.setTime(date);
				timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
				timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
			}
		});
		viewDialog.findViewById(R.id.btnCancel).setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				closeDialog();
			}
		});
		viewDialog.findViewById(R.id.btnConfirm).setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				closeDialog();
				if (null != listener) {
					listener.onClose(ToolUtil.createMap(new String[] { "date" }, new Object[] { calendar.getTime() }));
				}
			}
		});
		int width = LjhooUtil.size[0].multiply(BigDecimal.valueOf(0.9)).intValue();
		dialog = new Dialog(activity, R.style.dialog);
		dialog.setContentView(viewDialog, new LayoutParams(width, LayoutParams.WRAP_CONTENT));
		dialog.setCanceledOnTouchOutside(true);
		dialog.show();
	}

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧