我有一个数字时钟在我的应用程序的活动,我想只显示小时和分钟,并不想显示秒。如何使数字时钟只显示小时和分钟
1
A
回答
2
请看一看这个答案在这里,而据我可以看到你正在寻找一个类似/同样的事情:
Android: DigitalClock remove seconds
答案的主要内容如下:
像AnalogClock,但数字。显示秒。 FIXME:实现 小时/分钟/秒的单独视图,所以比例字体不会抖动渲染。
通过FIXME判断,最终可以隐藏DigitalClock的部分功能。我没有找到任何目前在Javadoc或源代码中的任何 ,它们会执行你想要的任务 。 除非你想编写自己的类来扩展DigitalClock(或者你自己的时钟实现),否则你可能只需要覆盖DigitalClock的秒部分和另一个 元素,如果它符合你的目的。
1
系统根据系统时钟在每分钟的确切开始处发送广播事件。最可靠的办法是做这样的:
BroadcastReceiver _broadcastReceiver;
private final SimpleDateFormat _sdfWatchTime = new SimpleDateFormat("HH:mm");
private TextView _tvTime;
@Override
public void onStart() {
super.onStart();
_broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().compareTo(Intent.ACTION_TIME_TICK) == 0)
_tvTime.setText(_sdfWatchTime.format(new Date()));
}
};
registerReceiver(_broadcastReceiver, new IntentFilter(Intent.ACTION_TIME_TICK));
}
@Override
public void onStop() {
super.onStop();
if (_broadcastReceiver != null)
unregisterReceiver(_broadcastReceiver);
}
但是不要忘了事先初始化你的TextView(为当前系统时间),因为很可能你会弹出一分钟的中间你的用户界面和TextView将不会更新,直到下一分钟发生。
1
import android.content.Context;
import android.database.ContentObserver;
import android.os.Handler;
import android.os.SystemClock;
import android.provider.Settings;
import android.text.format.DateFormat;
import android.util.AttributeSet;
import android.widget.TextView;
import java.util.Calendar;
public class DigitalClock extends TextView {
Calendar mCalendar;
private final static String m24 = "k:mm";
private FormatChangeObserver mFormatChangeObserver;
private Runnable mTicker;
private Handler mHandler;
private boolean mTickerStopped = false;
String mFormat;
public DigitalClock(Context context) {
super(context);
initClock(context);
}
public DigitalClock(Context context, AttributeSet attrs) {
super(context, attrs);
initClock(context);
}
private void initClock(Context context) {
if (mCalendar == null) {
mCalendar = Calendar.getInstance();
}
mFormatChangeObserver = new FormatChangeObserver();
getContext().getContentResolver().registerContentObserver(
Settings.System.CONTENT_URI, true, mFormatChangeObserver);
setFormat();
}
@Override
protected void onAttachedToWindow() {
mTickerStopped = false;
super.onAttachedToWindow();
mHandler = new Handler();
/**
* requests a tick on the next hard-second boundary
*/
mTicker = new Runnable() {
public void run() {
if (mTickerStopped) return;
mCalendar.setTimeInMillis(System.currentTimeMillis());
setText(DateFormat.format(mFormat, mCalendar));
invalidate();
long now = SystemClock.uptimeMillis();
long next = now + (1000 - now % 1000);
mHandler.postAtTime(mTicker, next);
}
};
mTicker.run();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
mTickerStopped = true;
}
private void setFormat() {
mFormat = m24;
}
private class FormatChangeObserver extends ContentObserver {
public FormatChangeObserver() {
super(new Handler());
}
@Override
public void onChange(boolean selfChange) {
setFormat();
}
}
}
您可以使用此自定义视图。这也适用于姜饼。 (m24)
相关问题
- 1. 只显示小时和分钟?
- 2. 我如何只显示小时和分钟?
- 3. 只显示分钟和秒钟0
- 4. 小时和分钟
- 5. 如果时间大于60分钟,只显示小时
- 6. 如何使用JSpinner分别更改小时,分钟和秒钟?
- 7. 只有小时和分钟的序列
- 8. 如何只显示小时和分钟从PHP数据库像PHP(00:00)?
- 9. 如何在tsql中将分钟分为天,小时和分钟
- 10. 如何在php中检查DB小时数和分钟数小于当前小时数和分钟数?
- 11. 显示警告和时钟闹钟
- 12. 如何在DateTimePicker上显示小时和分钟
- 13. SmartGWT DateTimeItem,如何显示小时和分钟PickerItem?
- 14. DateDiff()小时和分钟?
- 15. 比较小时和分钟
- 16. 小时和分钟用JavaScript
- 17. 小时和分钟到秒
- 18. 如何显示数字时钟小部件的秒数?
- 19. 显示天数,小时,分钟和秒数
- 20. 我怎么能显示时间和日期只有小时和分钟
- 21. 如何“圆圆”分钟和小时
- 22. 如何获得小时和分钟?
- 23. 如何比较小时和分钟?
- 24. 如何累计小时,分钟和秒?
- 25. 如何获得小时,分钟和秒
- 26. 如何根据小时和分钟
- 27. 将分钟添加到输入字段并显示小时/分钟
- 28. 如何计算php中总分钟的小时数,分钟数和秒数?
- 29. 定时器在iOS中显示秒,分钟和小时Xamarin
- 30. 如何计算小时:总分钟数?
代码plz ....... –
可能出现[Android:DigitalClock remove seconds]重复(http://stackoverflow.com/questions/7610549/android-digitalclock) -remove - 秒) – Veger