如何修改android+安卓datepickerdialogg样式

当前访客身份:游客 [
当前位置:
在settting -& date&time setttings -&select data format的默认值&&由mm-dd-yyyy 改为 dd-mm-yyyy ?? 请教!! 谢谢!
共有9个答案
<span class="a_vote_num" id="a_vote_num_
你好,最近正在为这个事情发愁,麻烦能不能把解决方法分享一下...
<span class="a_vote_num" id="a_vote_num_
参考external\icu4c\data\locales,zh.txt
查找DateTimePatterns,就知道怎么回事了!所谓
根据当地的习惯设置为默认值都是定义在这里的!
<span class="a_vote_num" id="a_vote_num_
已经找到答案了, 它是根据当地的习惯设置为默认值的。。。。不同地区的,默认日期显示格式不一样。
”当地的习惯设置“,计算机语言里面有这么个说法吗?看不懂,应该有可能就是自己直接写的default值,然后通过界面选择改变default值,或者同步当地的时间服务器修改的
<span class="a_vote_num" id="a_vote_num_
已经找到答案了, 它是根据当地的习惯设置为默认值的。。。。不同地区的,默认日期显示格式不一样。
<span class="a_vote_num" id="a_vote_num_
&&& private String getDateFormat() { &&&&&&& return Settings.System.getString(getContentResolver(),
&&&&&&&&&&&&&&& Settings.System.DATE_FORMAT); &&& }
当用用户没在菜单中修改显示日期格式设置时? 日期格式的初始值会放在哪呢???
<span class="a_vote_num" id="a_vote_num_
引用来自“红薯”的答案时间格式设置:
String timeSet = Settings.System.gutString(getContentResolver(),
Settings.System.TIME_12_24);
Settings.System.putString(getContentResolver(),
Settings.System.TIME_12_24, &24&);
Settings.System.putString(getContentResolver(),
Settings.System.TIME_12_24,&12&);
日期格式设置:
Settings.System.gutString(getContentResolver(), Settings.System.DATE_FORMAT);
Settings.System.putString(getContentResolver(), Settings.System.DATE_FORMAT, format);这个函数知道。 但是默认值 不知道怎么在哪改。。 就是复位后, 的初始值。。
Settings.System.getString(getContentResolver(),&Settings.System.DATE_FORMAT);& 这个能改初始值 不?
下面是源代码:
/* &* Copyright (C) 2008 The Android Open Source Project &* &* Licensed under the Apache License, Version 2.0 (the &License&); &* you may not use this file except in compliance with the License. &* You may obtain a copy of the License at &* &*&&&&&
&* &* Unless required by applicable law or agreed to in writing, software &* distributed under the License is distributed on an &AS IS& BASIS, &* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. &* See the License for the specific language governing permissions and &* limitations under the License. &*/
package com.android.
import android.app.D import android.app.DatePickerD import android.app.TimePickerD import android.content.BroadcastR import android.content.C import android.content.I import android.content.IntentF import android.content.SharedP import android.content.SharedPreferences.OnSharedPreferenceChangeL import android.os.B import android.os.SystemC import android.preference.CheckBoxP import android.preference.ListP import android.preference.P import android.preference.PreferenceA import android.preference.PreferenceS import android.provider.S import android.provider.Settings.SettingNotFoundE import android.text.format.DateF import android.widget.DateP import android.widget.TimeP
import java.util.C import java.util.D import java.util.TimeZ
public class DateTimeSettings
&&&&&&& extends PreferenceActivity
&&&&&&& implements OnSharedPreferenceChangeListener, &&&&&&&&&&&&&&& TimePickerDialog.OnTimeSetListener , DatePickerDialog.OnDateSetListener {
&&& private static final String HOURS_12 = &12&; &&& private static final String HOURS_24 = &24&; &&&
&&& private Calendar mDummyD &&& private static final String KEY_DATE_FORMAT = &date_format&; &&& private static final String KEY_AUTO_TIME = &auto_time&;
&&& private static final int DIALOG_DATEPICKER = 0; &&& private static final int DIALOG_TIMEPICKER = 1; &&&
&&& private CheckBoxPreference mAutoP &&& private Preference mTimeP &&& private Preference mTime24P &&& private Preference mTimeZ &&& private Preference mDateP &&& private ListPreference mDateF &&&
&&& @Override &&& protected void onCreate(Bundle icicle) { &&&&&&& super.onCreate(icicle); &&&&&&&
&&&&&&& addPreferencesFromResource(R.xml.date_time_prefs); &&&&&&&
&&&&&&& initUI();&&&&&&&
&&& private void initUI() { &&&&&&& boolean autoEnabled = getAutoState();
&&&&&&& mDummyDate = Calendar.getInstance(); &&&&&&& mDummyDate.set(mDummyDate.get(Calendar.YEAR), 11, 31, 13, 0, 0); &&&&&&&
&&&&&&& mAutoPref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME); &&&&&&& mAutoPref.setChecked(autoEnabled); &&&&&&& mTimePref = findPreference(&time&); &&&&&&& mTime24Pref = findPreference(&24 hour&); &&&&&&& mTimeZone = findPreference(&timezone&); &&&&&&& mDatePref = findPreference(&date&); &&&&&&& mDateFormat = (ListPreference) findPreference(KEY_DATE_FORMAT); &&&&&&&
&&&&&&& String [] dateFormats = getResources().getStringArray(R.array.date_format_values); &&&&&&& String [] formattedDates = new String[dateFormats.length]; &&&&&&& String currentFormat = getDateFormat(); &&&&&&& // Initialize if DATE_FORMAT is not set in the system settings &&&&&&& // This can happen after a factory reset (or data wipe) &&&&&&& if (currentFormat == null) { &&&&&&&&&&& currentFormat = &&; &&&&&&& } &&&&&&& for (int i = 0; i & formattedDates. i++) { &&&&&&&&&&& String formatted = &&&&&&&&&&&&&&& DateFormat.getDateFormatForSetting(this, dateFormats[i]). &&&&&&&&&&&&&&&&&&& format(mDummyDate.getTime());
&&&&&&&&&&& if (dateFormats[i].length() == 0) { &&&&&&&&&&&&&&& formattedDates[i] = getResources(). &&&&&&&&&&&&&&&&&&& getString(R.string.normal_date_format, formatted); &&&&&&&&&&& } else { &&&&&&&&&&&&&&& formattedDates[i] = &&&&&&&&&&& } &&&&&&& } &&&&&&&
&&&&&&& mDateFormat.setEntries(formattedDates); &&&&&&& mDateFormat.setEntryValues(R.array.date_format_values); &&&&&&& mDateFormat.setValue(currentFormat); &&&&&&&
&&&&&&& mTimePref.setEnabled(!autoEnabled); &&&&&&& mDatePref.setEnabled(!autoEnabled); &&&&&&& mTimeZone.setEnabled(!autoEnabled); &&& }
&&& @Override &&& protected void onResume() { &&&&&&& super.onResume(); &&&&&&&
&&&&&&& getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
&&&&&&& ((CheckBoxPreference)mTime24Pref).setChecked(is24Hour());
&&&&&&& // Register for time ticks and other reasons for time change &&&&&&& IntentFilter filter = new IntentFilter(); &&&&&&& filter.addAction(Intent.ACTION_TIME_TICK); &&&&&&& filter.addAction(Intent.ACTION_TIME_CHANGED); &&&&&&& filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); &&&&&&& registerReceiver(mIntentReceiver, filter, null, null); &&&&&&&
&&&&&&& updateTimeAndDateDisplay(); &&& }
&&& @Override
&&& protected void onPause() { &&&&&&& super.onPause(); &&&&&&& unregisterReceiver(mIntentReceiver); &&&&&&& getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); &&& } &&&
&&& private void updateTimeAndDateDisplay() { &&&&&&& java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(this); &&&&&&& Date now = Calendar.getInstance().getTime(); &&&&&&& Date dummyDate = mDummyDate.getTime(); &&&&&&& mTimePref.setSummary(DateFormat.getTimeFormat(this).format(now)); &&&&&&& mTimeZone.setSummary(getTimeZoneText()); &&&&&&& mDatePref.setSummary(shortDateFormat.format(now)); &&&&&&& mDateFormat.setSummary(shortDateFormat.format(dummyDate)); &&& }
&&& public void onDateSet(DatePicker view, int year, int month, int day) { &&&&&&& Calendar c = Calendar.getInstance();
&&&&&&& c.set(Calendar.YEAR, year); &&&&&&& c.set(Calendar.MONTH, month); &&&&&&& c.set(Calendar.DAY_OF_MONTH, day); &&&&&&& long when = c.getTimeInMillis();
&&&&&&& if (when / 1000 & Integer.MAX_VALUE) { &&&&&&&&&&& SystemClock.setCurrentTimeMillis(when); &&&&&&& } &&&&&&& updateTimeAndDateDisplay(); &&& }
&&& public void onTimeSet(TimePicker view, int hourOfDay, int minute) { &&&&&&& Calendar c = Calendar.getInstance();
&&&&&&& c.set(Calendar.HOUR_OF_DAY, hourOfDay); &&&&&&& c.set(Calendar.MINUTE, minute); &&&&&&& long when = c.getTimeInMillis();
&&&&&&& if (when / 1000 & Integer.MAX_VALUE) { &&&&&&&&&&& SystemClock.setCurrentTimeMillis(when); &&&&&&& } &&&&&&& updateTimeAndDateDisplay(); &&&&&&&
&&&&&&& // We don't need to call timeUpdated() here because the TIME_CHANGED &&&&&&& // broadcast is sent by the AlarmManager as a side effect of setting the &&&&&&& // SystemClock time. &&& }
&&& public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { &&&&&&& if (key.equals(KEY_DATE_FORMAT)) { &&&&&&&&&&& String format = preferences.getString(key,
&&&&&&&&&&&&&&&&&&& getResources().getString(R.string.default_date_format)); &&&&&&&&&&& Settings.System.putString(getContentResolver(),
&&&&&&&&&&&&&&&&&&& Settings.System.DATE_FORMAT, format); &&&&&&&&&&& updateTimeAndDateDisplay(); &&&&&&& } else if (key.equals(KEY_AUTO_TIME)) { &&&&&&&&&&& boolean autoEnabled = preferences.getBoolean(key, true); &&&&&&&&&&& Settings.System.putInt(getContentResolver(),
&&&&&&&&&&&&&&&&&&& Settings.System.AUTO_TIME,
&&&&&&&&&&&&&&&&&&& autoEnabled ? 1 : 0); &&&&&&&&&&& mTimePref.setEnabled(!autoEnabled); &&&&&&&&&&& mDatePref.setEnabled(!autoEnabled); &&&&&&&&&&& mTimeZone.setEnabled(!autoEnabled); &&&&&&& } &&& }
&&& @Override &&& public Dialog onCreateDialog(int id) { &&&&&&& D
&&&&&&& switch (id) { &&&&&&& case DIALOG_DATEPICKER: { &&&&&&&&&&& final Calendar calendar = Calendar.getInstance(); &&&&&&&&&&& d = new DatePickerDialog( &&&&&&&&&&&&&&& this, &&&&&&&&&&&&&&& this, &&&&&&&&&&&&&&& calendar.get(Calendar.YEAR), &&&&&&&&&&&&&&& calendar.get(Calendar.MONTH), &&&&&&&&&&&&&&& calendar.get(Calendar.DAY_OF_MONTH)); &&&&&&&&&&& d.setTitle(getResources().getString(R.string.date_time_changeDate_text)); &&&&&&&&&&& &&&&&&& } &&&&&&& case DIALOG_TIMEPICKER: { &&&&&&&&&&& final Calendar calendar = Calendar.getInstance(); &&&&&&&&&&& d = new TimePickerDialog( &&&&&&&&&&&&&&&&&&& this, &&&&&&&&&&&&&&&&&&& this, &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.HOUR_OF_DAY), &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.MINUTE), &&&&&&&&&&&&&&&&&&& DateFormat.is24HourFormat(this)); &&&&&&&&&&& d.setTitle(getResources().getString(R.string.date_time_changeTime_text)); &&&&&&&&&&& &&&&&&& } &&&&&&& default: &&&&&&&&&&& d = &&&&&&&&&&& &&&&&&& }
&&&&&&& &&& }
&&& @Override &&& public void onPrepareDialog(int id, Dialog d) { &&&&&&& switch (id) { &&&&&&& case DIALOG_DATEPICKER: { &&&&&&&&&&& DatePickerDialog datePicker = (DatePickerDialog)d; &&&&&&&&&&& final Calendar calendar = Calendar.getInstance(); &&&&&&&&&&& datePicker.updateDate( &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.YEAR), &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.MONTH), &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.DAY_OF_MONTH)); &&&&&&&&&&& &&&&&&& } &&&&&&& case DIALOG_TIMEPICKER: { &&&&&&&&&&& TimePickerDialog timePicker = (TimePickerDialog)d; &&&&&&&&&&& final Calendar calendar = Calendar.getInstance(); &&&&&&&&&&& timePicker.updateTime( &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.HOUR_OF_DAY), &&&&&&&&&&&&&&&&&&& calendar.get(Calendar.MINUTE)); &&&&&&&&&&& &&&&&&& } &&&&&&& default: &&&&&&&&&&& &&&&&&& } &&& } &&&
&&& @Override &&& public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { &&&&&&& if (preference == mDatePref) { &&&&&&&&&&& showDialog(DIALOG_DATEPICKER); &&&&&&& } else if (preference == mTimePref) { &&&&&&&&&&& // The 24-hour mode may have changed, so recreate the dialog &&&&&&&&&&& removeDialog(DIALOG_TIMEPICKER); &&&&&&&&&&& showDialog(DIALOG_TIMEPICKER); &&&&&&& } else if (preference == mTime24Pref) { &&&&&&&&&&& set24Hour(((CheckBoxPreference)mTime24Pref).isChecked()); &&&&&&&&&&& updateTimeAndDateDisplay(); &&&&&&&&&&& timeUpdated(); &&&&&&& } else if (preference == mTimeZone) { &&&&&&&&&&& Intent intent = new Intent(); &&&&&&&&&&& intent.setClass(this, ZoneList.class); &&&&&&&&&&& startActivityForResult(intent, 0); &&&&&&& } &&&&&&& &&& } &&&
&&& @Override &&& protected void onActivityResult(int requestCode, int resultCode, &&&&&&&&&&& Intent data) { &&&&&&& updateTimeAndDateDisplay(); &&& } &&&
&&& private void timeUpdated() { &&&&&&& Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED); &&&&&&& sendBroadcast(timeChanged); &&& } &&&
&&& /*& Get & Set values from the system settings& */ &&&
&&& private boolean is24Hour() { &&&&&&& return DateFormat.is24HourFormat(this); &&& } &&&
&&& private void set24Hour(boolean is24Hour) { &&&&&&& Settings.System.putString(getContentResolver(), &&&&&&&&&&&&&&& Settings.System.TIME_12_24, &&&&&&&&&&&&&&& is24Hour? HOURS_24 : HOURS_12); &&& } &&&
&&& private String getDateFormat() { &&&&&&& return Settings.System.getString(getContentResolver(),
&&&&&&&&&&&&&&& Settings.System.DATE_FORMAT); &&& } &&&
&&& private boolean getAutoState() { &&&&&&& try { &&&&&&&&&&& return Settings.System.getInt(getContentResolver(),
&&&&&&&&&&&&&&& Settings.System.AUTO_TIME) & 0;&&&&&&&&&&&
&&&&&&& } catch (SettingNotFoundException snfe) { &&&&&&&&&&& &&&&&&& } &&& }
&&& private void setDateFormat(String format) { &&&&&&& if (format.length() == 0) { &&&&&&&&&&& format = &&&&&&& }
&&&&&&& Settings.System.putString(getContentResolver(), Settings.System.DATE_FORMAT, format);&&&&&&&
&&& /*& Helper routines to format timezone */ &&&
&&& private String getTimeZoneText() { &&&&&&& TimeZone&&& tz = java.util.Calendar.getInstance().getTimeZone(); &&&&&&& boolean daylight = tz.inDaylightTime(new Date()); &&&&&&& StringBuilder sb = new StringBuilder();
&&&&&&& sb.append(formatOffset(tz.getRawOffset() + &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (daylight ? tz.getDSTSavings() : 0))). &&&&&&&&&&& append(&, &). &&&&&&&&&&& append(tz.getDisplayName(daylight, TimeZone.LONG));
&&&&&&& return sb.toString();&&&&&&&
&&& private char[] formatOffset(int off) { &&&&&&& off = off / 1000 / 60;
&&&&&&& char[] buf = new char[9]; &&&&&&& buf[0] = 'G'; &&&&&&& buf[1] = 'M'; &&&&&&& buf[2] = 'T';
&&&&&&& if (off & 0) { &&&&&&&&&&& buf[3] = '-'; &&&&&&&&&&& off = - &&&&&&& } else { &&&&&&&&&&& buf[3] = '+'; &&&&&&& }
&&&&&&& int hours = off / 60;
&&&&&&& int minutes = off % 60;
&&&&&&& buf[4] = (char) ('0' + hours / 10); &&&&&&& buf[5] = (char) ('0' + hours % 10);
&&&&&&& buf[6] = ':';
&&&&&&& buf[7] = (char) ('0' + minutes / 10); &&&&&&& buf[8] = (char) ('0' + minutes % 10);
&&&&&&& &&& } &&&
&&& private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { &&&&&&& @Override &&&&&&& public void onReceive(Context context, Intent intent) { &&&&&&&&&&& updateTimeAndDateDisplay(); &&&&&&& } &&& }; }
<span class="a_vote_num" id="a_vote_num_
引用来自“华宰”的答案你说的是用程序去改吗?是的。。 源代码上改!
<span class="a_vote_num" id="a_vote_num_
时间格式设置:
String timeSet = Settings.System.gutString(getContentResolver(),
Settings.System.TIME_12_24);
Settings.System.putString(getContentResolver(),
Settings.System.TIME_12_24, &24&);
Settings.System.putString(getContentResolver(),
Settings.System.TIME_12_24,&12&);
日期格式设置:
Settings.System.gutString(getContentResolver(), Settings.System.DATE_FORMAT);
Settings.System.putString(getContentResolver(), Settings.System.DATE_FORMAT, format);
<span class="a_vote_num" id="a_vote_num_
你说的是用程序去改吗?
更多开发者职位上
有什么技术问题吗?
diordna...的其它问题
类似的话题Android--UI之DatePicker、TimePicker... - 承香墨影 - 推酷
Android--UI之DatePicker、TimePicker... - 承香墨影
这一篇博客分别讲解Android平台下,关于日期和时间的几个相关控件。包括DatePicker(日期选择控件)、TimePicker(时间选择控件)、DatePickerDialog(日期选择对话框)、TimePickerDialog(时间选择对话框)、AnalogClock(模拟时钟控件)、DigitalClock(数字时钟控件)。对于时间控件,无非就是一个展示、修改、获取等操作,下面一一讲解。
DatePicker、TimePicker
都继承自android.widget.FrameLayout,并且默认展示风格、与操作风格也类似。DatePicker用于展示一个日期选择控件,TimePicker用于展示一个时间选择控件。
作为一个日期选择控件,DatePicker可以通过设置属性来确定日期选择范围,也可以通过定义好的方法获取到当前选中的时间,并且在修改日期的时候,有响应的事件对其进行响应。
DatePicker常用相关属性:
android:calendarViewShown:是否显示日历。
android:startYear:设置可选开始年份。
android:endYear:设置可选结束年份。
android:maxDate:设置可选最大日期,以mm/dd/yyyy格式设置。
android:minDate:设置可选最小日期,以mm/dd/yyyy格式设置。
DatePicker的方法而言,除了常用获取属性的setter、getter方法之外,还需要特别注意一个初始化的方法init()方法,用于做DatePicker控件的初始化,并且设置日期被修改后,回调的响应事件。此方法的签名如下:
init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
从上面的init()方法可以看到,DatePicker被修改时响应的事件是
事件,如果要响应此事件,需要实现其中的onDateChanged()方法,其中参数从签名即可了解意思,这里不再累述。
onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
作为一个时间选择控件来说,TimePicker需要与时间相关的getter、setter方法之外,还需要有时间被修改够,回调的响应事件。
TimePicker常用方法有如下几个:
is24HourView():判断是否为24小时制。
setIs24HourView():设置是否为24小时制显示。
getCurrentXxx():获取当前时间。
setCurrentXxx():设置当前时间。
setOnTimeChangedListener():设置时间被修改的回调方法。
TimePicker控件被修改的回调方法,通过setOnTimeChangedListener()方法设置,其传递一个
接口,需要实现其中的onTimeChanged()方法。
& 下面通过一个示例来讲解这两个控件的使用,在示例中分别展示了这两个控件,并在其修改之后,把修改值通过Toast的方式展示到屏幕上。
布局代码:
1 &?xml version=&1.0& encoding=&utf-8&?&
2 &LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
&DatePicker
android:id=&@+id/dpPicker&
android:calendarViewShown=&false&
android:layout_width=&match_parent&
android:layout_height=&wrap_content& /&
&TimePicker
android:id=&@+id/tpPicker&
android:layout_width=&match_parent&
android:layout_height=&wrap_content& /&
19 &/LinearLayout&
实现代码:&
1 package com.bgxt.
3 import java.text.SimpleDateF
4 import java.util.C
6 import android.app.A
7 import android.os.B
8 import android.widget.DateP
9 import android.widget.DatePicker.OnDateChangedL
10 import android.widget.TextV
11 import android.widget.TimeP
12 import android.widget.T
14 public class DataTimePicker extends Activity {
private DatePicker dateP
private TimePicker timeP
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_datatimepicker);
datePicker = (DatePicker) findViewById(R.id.dpPicker);
timePicker = (TimePicker) findViewById(R.id.tpPicker);
datePicker.init(, new OnDateChangedListener() {
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// 获取一个日历对象,并初始化为当前选中的时间
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat(
&yyyy年MM月dd日
Toast.makeText(DataTimePicker.this,
format.format(calendar.getTime()), Toast.LENGTH_SHORT)
timePicker.setIs24HourView(true);
timePicker
.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay,
int minute) {
Toast.makeText(DataTimePicker.this,
hourOfDay + &小时& + minute + &分钟&,
Toast.LENGTH_SHORT).show();
效果展示:
DatePickerDialog、TimePickerDialog
是两个对话框控件,一个弹出对话框用于选择日期,一个弹出对话框用于选择时间,都继承自android.app.AlertDialog。
这两个控件的开发过程,其主要就是开发其选择后日期或时间后,相应的事件。
对于DatePickeDialog而言,通过构造函数可以设置弹出的日期控件的初始值,并且可以指定选中日期后,回调事件的实现,构造函数的签名如下:
DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
为日期选中的响应事件,其他为日期弹出窗口初始化的日期,对于一个OnDateSetListener接口而言,需要实现其中的onDateSet()方法,在这个方法内,可以得到用户选中的日期。
对于TimePickerDialog而言,同样可以通过构造函数设置初始值,并且设定选中日期后,回调事件的实现,构造函数的签名如下:
TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)
为时间选中的响应事件,其他为时间弹出窗口初始化的时间,对于一个OnTimeSetListener接口而言,需要实现其中的onTimeSet()方法,在这个方法内,可以得到用户选中的时间。
AnalogClock、DigitalClock
为两个时间展示控件,切只是展示的风格不同而已,没有什么太大的区别。有一点值得注意的就是,这两个控件展示的时间是无法修改的,仅为系统当前时间。看示例就能明白,没什么好详细说的。
下面通过一个例子说明一下DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock四个控件的使用。
布局代码:
1 &?xml version=&1.0& encoding=&utf-8&?&
2 &LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical& &
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&指针时钟:& /&
&AnalogClock
android:layout_width=&fill_parent&
android:layout_height=&wrap_content& /&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&数字时钟:& /&
&DigitalClock
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:textSize=&20dp& /&
android:id=&@+id/btnTimePickerDialog&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&Show TimePickerDialog&
android:id=&@+id/btnDatePickerDialog&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&Show DatePickerDialog&
37 &/LinearLayout&
实现代码:
1 package com.bgxt.
3 import android.app.A
4 import android.app.DatePickerD
5 import android.app.DatePickerDialog.OnDateSetL
6 import android.app.TimePickerD
7 import android.app.TimePickerDialog.OnTimeSetL
8 import android.os.B
9 import android.view.V
10 import android.view.View.OnClickL
11 import android.widget.B
12 import android.widget.DateP
13 import android.widget.TimeP
14 import android.widget.T
16 public class AnalogDigitalClock extends Activity implements OnClickListener {
private Button btnDate, btnT
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anologdigital);
btnDate = (Button) findViewById(R.id.btnDatePickerDialog);
btnTime = (Button) findViewById(R.id.btnTimePickerDialog);
btnDate.setOnClickListener(this);
btnTime.setOnClickListener(this);
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnDatePickerDialog:
DatePickerDialog datePicker=new DatePickerDialog(AnalogDigitalClock.this, new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
Toast.makeText(AnalogDigitalClock.this, year+&year &+(monthOfYear+1)+&month &+dayOfMonth+&day&, Toast.LENGTH_SHORT).show();
datePicker.show();
case R.id.btnTimePickerDialog:
TimePickerDialog time=new TimePickerDialog(AnalogDigitalClock.this, new OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Toast.makeText(AnalogDigitalClock.this, hourOfDay+&hour &+minute+&minute&, Toast.LENGTH_SHORT).show();
}, 18, 25, true);
time.show();
效果展示:
& 以上就讲解了在Android平台下,几个与时间相关的控件,没有什么特别的,注意设置与响应事件即可。
请支持原创,尊重原创,转载请注明出处。谢谢。
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
排版有问题
没有分页内容
视频无法显示
图片无法显示

我要回帖

更多关于 datepickerdialog 的文章

 

随机推荐