当前位置: 首页 > 面试题库 >

Android:DigitalClock删除秒

岳嘉容
2023-03-14
问题内容

我使用以下代码为我的应用添加了时钟:

      <DigitalClock 
    android:id="@+id/digitalclock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:textSize = "30sp"
    />

问题在于它还显示秒。.有一种简单快速的隐藏方法吗?我只需要hh:mm格式的小时和分钟,而不是hh:mm:ss!有什么建议?谢谢!


问题答案:

在这里找到答案,其他正在寻找有效答案的人是:

  1. DigitalClock.java从Android源克隆/复制
  2. 更改新的格式字符串 CustomDigitalClock
        package com.example;

    import android.content.Context;
    import android.content.res.Resources;
    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;

    /**
     * You have to make a clone of the file DigitalClock.java to use in your application, modify in the following manner:-
     *      private final static String m12 = "h:mm aa";
     *      private final static String m24 = "k:mm";
     */

    public class CustomDigitalClock extends TextView {

        Calendar mCalendar;
        private final static String m12 = "h:mm aa";
        private final static String m24 = "k:mm";
        private FormatChangeObserver mFormatChangeObserver;

        private Runnable mTicker;
        private Handler mHandler;

        private boolean mTickerStopped = false;

        String mFormat;

        public CustomDigitalClock(Context context) {
            super(context);
            initClock(context);
        }

        public CustomDigitalClock(Context context, AttributeSet attrs) {
            super(context, attrs);
            initClock(context);
        }

        private void initClock(Context context) {
            Resources r = context.getResources();

            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;
        }

        /**
         * Pulls 12/24 mode from system settings
         */
        private boolean get24HourMode() {
            return android.text.format.DateFormat.is24HourFormat(getContext());
        }

        private void setFormat() {
            if (get24HourMode()) {
                mFormat = m24;
            } else {
                mFormat = m12;
            }
        }

        private class FormatChangeObserver extends ContentObserver {
            public FormatChangeObserver() {
                super(new Handler());
            }

            @Override
            public void onChange(boolean selfChange) {
                setFormat();
            }
        }

    }
  1. 在布局xml中引用自定义类

    <com.example.CustomDigitalClock
    android:id="@+id/fragment_clock_digital"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="DigitalClock" />
    
  2. 在活动/片段中加载CustomDigitalClock

        CustomDigitalClock dc = (CustomDigitalClock)
    mFragmentView.findViewById(R.id.fragment_clock_digital);


 类似资料:
  • 删除数据 force 设置为true 时,不进行物理删除,只是软删除 model.destroy( { where:{ id:this.ctx.params.id }}, { force: true } ) 恢复所有软删除数据 model.restore() 恢复指定ID数据 model.restore( { where: { id: 2 } } )

  • rm(remove),可以删除目录或文件。 rm 要删除的内容的路径 练习:删除文件 rm ninghao-project/README.md 练习:删除整个目录 上面的命令会删除掉 ninghao-project 目录下的 README.md 这个文件。要删除一个目录里包含的所有内容,要加上 r 选项,想不出现确认提示,还要再加一个 f 选项。 rm -rf ninghao-project

  • 删除容器 可以使用 docker container rm 来删除一个处于终止状态的容器。例如 $ docker container rm trusting_newtontrusting_newton 如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。 清理所有处于终止状态的容器 用 docker container ls -a 命令可以查看所有

  • 模型的删除和数据库的删除方法区别在于,模型的删除会包含模型的事件处理。 删除当前模型 删除模型数据,可以在查询后调用delete方法。 $user = User::get(1); $user->delete(); delete方法返回影响的记录数,V5.1.6+版本开始返回布尔值 根据主键删除 或者直接调用静态方法(根据主键删除) User::destroy(1); // 支持批量删除多个数据 U

  • 请求地址 https://api.es.xiaojukeji.com/river/Member/del 返回数据格式 JSON 请求方式 POST 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的access to

  • 请求地址 https://api.es.xiaojukeji.com/river/BudgetCenter/del 返回数据格式 JSON 请求方式 POST 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的acc