桌面哪个地方有时间格式?
貌似 修改格式不会发intent
只有改时间和改12-24制式 才有intent
貌似 修改格式不会发intent
只有改时间和改12-24制式 才有intent
解决方案 »
- Bitmap的Options的insampleSize参数
- 一个关于android UI的问题
- ifconfig的疑问
- 做好的apk怎么不能装到手机上,求高手指点
- Android google map开发问题!!!
- EditText的按键响应问题
- onCreateOptionsMenu为什么不能调用?
- Android getLastKnowLocation null
- SlidingMenu 左侧菜单切换
- 我想设计一个控制安卓屏幕开关的接口,一个是屏幕关闭的时候触摸不生效,另一个是屏幕点亮,触摸生效。有大牛知道有没有什么好的方法?急,谢谢!!
- mapview 根据 GPS位置点 的 分布 自动缩小或放大 级别
- 日期格式设置年/月/日,改为日/月/年,但是主界面显示没有变化
@Override
protected void onResume() {// Resume:重新开始
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) {
Dialog 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));
break;
}
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));
break;
}
default:
d = null;
break;
} return 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));
break;
}
case DIALOG_TIMEPICKER: {
TimePickerDialog timePicker = (TimePickerDialog)d;
final Calendar calendar = Calendar.getInstance();
timePicker.updateTime(
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE));
break;
}
default:
break;
}
}
@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);
}
return false;
}
@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) {
return true;
}
} private void setDateFormat(String format) {
if (format.length() == 0) {
format = null;
} 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 = -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); return buf;
}
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateTimeAndDateDisplay();
}
};
}