{"id":4051,"date":"2021-02-25T10:03:28","date_gmt":"2021-02-25T02:03:28","guid":{"rendered":"http:\/\/122.152.205.50\/wordpress\/?p=4051"},"modified":"2021-02-25T15:19:04","modified_gmt":"2021-02-25T07:19:04","slug":"%e6%8e%a7%e5%88%b6%e6%8b%96%e5%8a%a8%e8%a1%8c%e4%b8%ba%e7%9a%84checkbox","status":"publish","type":"post","link":"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051","title":{"rendered":"\u63a7\u5236\u62d6\u52a8\u884c\u4e3a\u7684CheckBox\uff08\u4e8b\u4ef6\u5904\u7406\uff09"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_16 counter-hierarchy counter-decimal ez-toc-grey\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" style=\"display: none;\"><i class=\"ez-toc-glyphicon ez-toc-icon-toggle\"><\/i><\/a><\/span><\/div>\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051\/#%E5%8A%9F%E8%83%BD%E5%9C%BA%E6%99%AF\" title=\"\u529f\u80fd\u573a\u666f\">\u529f\u80fd\u573a\u666f<\/a><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051\/#%E9%97%AE%E9%A2%98%EF%BC%9A%E6%AD%A3%E5%B8%B8%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8CCheckBox%E4%B8%80%E7%82%B9%E5%87%BB%E5%B0%B1%E4%BC%9A%E5%8F%8D%E8%BD%AC%E7%8A%B6%E6%80%81%EF%BC%8C%E5%9B%9E%E8%B0%83onCheckedChanged%E6%96%B9%E6%B3%95%E3%80%82\" title=\"\u95ee\u9898\uff1a\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0cCheckBox\u4e00\u70b9\u51fb\u5c31\u4f1a\u53cd\u8f6c\u72b6\u6001\uff0c\u56de\u8c03onCheckedChanged\u65b9\u6cd5\u3002\">\u95ee\u9898\uff1a\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0cCheckBox\u4e00\u70b9\u51fb\u5c31\u4f1a\u53cd\u8f6c\u72b6\u6001\uff0c\u56de\u8c03onCheckedChanged\u65b9\u6cd5\u3002<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-5\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051\/#%E9%9C%80%E6%B1%82%EF%BC%9A%E6%88%91%E5%9C%A8%E8%BF%99%E4%B8%AA%E5%9C%BA%E6%99%AF%E4%B8%8B%E7%9A%84%E4%B8%9A%E5%8A%A1%E9%9C%80%E6%B1%82%E6%9C%892%E4%B8%AA\" title=\"\u9700\u6c42\uff1a\u6211\u5728\u8fd9\u4e2a\u573a\u666f\u4e0b\u7684\u4e1a\u52a1\u9700\u6c42\u67092\u4e2a\">\u9700\u6c42\uff1a\u6211\u5728\u8fd9\u4e2a\u573a\u666f\u4e0b\u7684\u4e1a\u52a1\u9700\u6c42\u67092\u4e2a<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-5\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051\/#%E5%88%86%E6%9E%90%EF%BC%9A\" title=\"\u5206\u6790\uff1a\">\u5206\u6790\uff1a<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-5\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051\/#%E5%A4%84%E7%90%86%E5%8A%9E%E6%B3%95%EF%BC%9A\" title=\"\u5904\u7406\u529e\u6cd5\uff1a\">\u5904\u7406\u529e\u6cd5\uff1a<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=4051\/#%E6%9C%80%E7%BB%88%E8%87%AA%E5%AE%9A%E4%B9%89CheckBox%E7%9A%84%E6%BA%90%E7%A0%81\" title=\"\u6700\u7ec8\u81ea\u5b9a\u4e49CheckBox\u7684\u6e90\u7801\">\u6700\u7ec8\u81ea\u5b9a\u4e49CheckBox\u7684\u6e90\u7801<\/a><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E5%8A%9F%E8%83%BD%E5%9C%BA%E6%99%AF\"><\/span>\u529f\u80fd\u573a\u666f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>\u6700\u8fd1\u505a\u4e86\u4e00\u4e2a\u8fdc\u7a0b\u63a7\u5236\u8f66\u8f86\u7684\u529f\u80fd<br \/>\n<img src=\"http:\/\/122.152.205.50\/wordpress\/wp-content\/uploads\/jianshu_blog\/FA0EA620-B4EC-4ccd-B595-7BED404B5580.png\" alt=\"\" \/><br \/>\n1\uff09\u6bcf\u4e2a\u529f\u80fd\u5b9a\u4e49\u4e86\u4e00\u4e2a\u7ec4\u5408\u578b\u7684\u81ea\u5b9a\u4e49View A\uff0c\u91cc\u9762\u6709\u4e00\u4e2aCheckBox B\uff0c\u70b9\u51fbA\u6216\u8005B\u80fd\u63a7\u5236\u5f00\u5173B\u7684\u72b6\u6001\u3002\u4f46\u662f\u201c\u95ea\u706f\u9e23\u7b1b\u201d\u8fd9\u4e00\u9879\uff0c\u5982\u679c\u70b9\u51fb\u4e86B\uff0c\u5e76\u4e0d\u662f\u4e00\u70b9\u51fbB\u5c31\u53bb\u53cd\u8f6cCheckBox\u72b6\u6001\uff0c\u800c\u662f\u4e0d\u5904\u7406\u4e8b\u4ef6\u3002<br \/>\n2\uff09\u6574\u4e2a\u7684\u70b9\u51fb\u4ea4\u7531\u70ed\u533aA\u7684\u70b9\u51fb\u4e8b\u4ef6\u5904\u7406\uff0c\u5f39\u51faDialog\uff0c\u8ba9\u7528\u6237\u9009\u62e9\u201c\u95ea\u706f\u201d\u3001\u201c\u95ea\u706f\u9e23\u7b1b\u201d\u3001\u201c\u9e23\u7b1b\u201d\u4e09\u4e2a\u9009\u9879\uff0c\u7531\u4e8e\u8fd9\u4e09\u4e2a\u9009\u9879\u53ef\u80fd\u90fd\u4e0d\u4f1a\u9009\u4e2d\uff0c\u6240\u4ee5\u65e0\u6cd5\u4f7f\u7528RadioButton,\u4ecd\u7136\u9009\u62e9\u4f7f\u7528CheckBox\u5904\u7406\u3002<br \/>\n<img src=\"http:\/\/122.152.205.50\/wordpress\/wp-content\/uploads\/jianshu_blog\/15DC51FA-5BC9-426b-9EC3-38D3E4E17FD2.png\" alt=\"\" \/><br \/>\n\u201c\u95ea\u706f\u201d\u3001\u201c\u95ea\u706f\u9e23\u7b1b\u201d\u3001\u201c\u9e23\u7b1b\u201d\u4e09\u4e2a\u9009\u9879\u9009\u62e9\u72b6\u6001\u7684\u53d8\u5316\uff0c\u5bf9\u4e8e\u7ec4\u5408\u578b\u7684\u81ea\u5b9a\u4e49View A\u8981\u5bf9\u5e94\u5730\u8054\u52a8\u53d8\u5316\uff0c\u6240\u4ee5\u6bcf\u4e2a\u9009\u9879\u90fd\u76d1\u542csetOnCheckedChangeListener\u3002\u201c\u95ea\u706f\u201d\u3001\u201c\u95ea\u706f\u9e23\u7b1b\u201d\u3001\u201c\u9e23\u7b1b\u201d\u4e09\u4e2a\u9009\u9879\u9009\u62e9\u72b6\u6001\u7684\u53d8\u5316\u7684\u539f\u56e0\u53ef\u80fd\u67092\u79cd\uff1a\u7b2c1\u79cd\uff0c\u81ea\u8eab\u88ab\u70b9\u51fb\u4e86\uff1b\u7b2c2\u79cd\uff0c\u5176\u5b83\u7684\u9009\u9879\u70b9\u51fb\u4e86\uff0c\u5bfc\u81f4\u81ea\u5df1\u72b6\u6001\u7684\u53d8\u5316\u3002\u5bf9\u4e8e\u7b2c2\u79cd\u53d8\u5316\uff0c\u5e76\u4e0d\u9700\u8981\u5904\u7406setOnCheckedChangeListener\u7684\u903b\u8f91\uff0c\u53ea\u8981\u9009\u9879\u7684\u72b6\u6001\u53d8\u5316\u4e86\u5c31\u884c\u3002<\/p>\n<h5><span class=\"ez-toc-section\" id=\"%E9%97%AE%E9%A2%98%EF%BC%9A%E6%AD%A3%E5%B8%B8%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8CCheckBox%E4%B8%80%E7%82%B9%E5%87%BB%E5%B0%B1%E4%BC%9A%E5%8F%8D%E8%BD%AC%E7%8A%B6%E6%80%81%EF%BC%8C%E5%9B%9E%E8%B0%83onCheckedChanged%E6%96%B9%E6%B3%95%E3%80%82\"><\/span>\u95ee\u9898\uff1a\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0cCheckBox\u4e00\u70b9\u51fb\u5c31\u4f1a\u53cd\u8f6c\u72b6\u6001\uff0c\u56de\u8c03onCheckedChanged\u65b9\u6cd5\u3002<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<h5><span class=\"ez-toc-section\" id=\"%E9%9C%80%E6%B1%82%EF%BC%9A%E6%88%91%E5%9C%A8%E8%BF%99%E4%B8%AA%E5%9C%BA%E6%99%AF%E4%B8%8B%E7%9A%84%E4%B8%9A%E5%8A%A1%E9%9C%80%E6%B1%82%E6%9C%892%E4%B8%AA\"><\/span>\u9700\u6c42\uff1a\u6211\u5728\u8fd9\u4e2a\u573a\u666f\u4e0b\u7684\u4e1a\u52a1\u9700\u6c42\u67092\u4e2a<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>1\uff09\u5c4f\u853dCheckBox\u7684\u70b9\u51fb\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e0d\u5141\u8bb8\u624b\u52a8\u70b9\u51fb\u6539\u53d8\u72b6\u6001\u7684CheckBox,\u53ea\u80fd\u901a\u8fc7\u8c03\u7528setChecked\u6216\u8005toggle()\u65b9\u6cd5\u6539\u53d8\u9009\u4e2d\u72b6\u6001\u3002<br \/>\n2\uff09\u53ef\u4ee5\u76d1\u542c\u53ea\u6709\u5728\u624b\u52a8\u70b9\u51fb\u4e0b\u72b6\u6001\u6539\u53d8\uff0c\u901a\u8fc7setChecked\u6216\u8005toggle()\u89e6\u53d1\u7684\u72b6\u6001\u53d8\u5316\u5219\u4e0d\u76d1\u542c\u3002<\/p>\n<h5><span class=\"ez-toc-section\" id=\"%E5%88%86%E6%9E%90%EF%BC%9A\"><\/span>\u5206\u6790\uff1a<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>1) CheckBox\u4e3a\u4ec0\u4e48\u70b9\u51fb\u4f1a\u53cd\u8f6c\u72b6\u6001\uff1f<br \/>\n2\uff09CheckBox\u662f\u5982\u4f55\u53cd\u8f6c\u72b6\u6001\u7684\uff1f<\/p>\n<p>\u6240\u4ee5\u5e26\u7740\u4e0a\u9762\u7684\u4e24\u4e2a\u95ee\u9898\u53bb\u67e5\u770bCheckBox\u7684\u6e90\u7801\uff1a<br \/>\nCheckBox\u7ee7\u627fCompoundButton\uff0cCompoundButton\u590d\u5199\u4e86performClick\u65b9\u6cd5\uff0c\u91cc\u9762\u8c03\u7528\u4e86<br \/>\ntoggle()\u65b9\u6cd5\uff0ctoggle()\u65b9\u6cd5\u8c03\u7528\u4e86setChecked(!mChecked)\u3002<\/p>\n<pre><code class=\"language-java line-numbers\"> @Override\n    public boolean performClick() {\n        toggle();\n\n        final boolean handled = super.performClick();\n        if (!handled) {\n            \/\/ View only makes a sound effect if the onClickListener was\n            \/\/ called, so we'll need to make one here instead.\n            playSoundEffect(SoundEffectConstants.CLICK);\n        }\n\n        return handled;\n    }\n<\/code><\/pre>\n<pre><code class=\"language-java line-numbers\">\/**\n     * &lt;p&gt;Changes the checked state of this button.&lt;\/p&gt;\n     *\n     * @param checked true to check the button, false to uncheck it\n     *\/\n    @Override\n    public void setChecked(boolean checked) {\n        if (mChecked != checked) {\n            mCheckedFromResource = false;\n            mChecked = checked;\n            refreshDrawableState();\n\n            \/\/ Avoid infinite recursions if setChecked() is called from a listener\n            if (mBroadcasting) {\n                return;\n            }\n\n            mBroadcasting = true;\n            if (mOnCheckedChangeListener != null) {\n                mOnCheckedChangeListener.onCheckedChanged(this, mChecked);\n            }\n            if (mOnCheckedChangeWidgetListener != null) {\n                mOnCheckedChangeWidgetListener.onCheckedChanged(this, mChecked);\n            }\n            final AutofillManager afm = mContext.getSystemService(AutofillManager.class);\n            if (afm != null) {\n                afm.notifyValueChanged(this);\n            }\n\n            mBroadcasting = false;\n        }\n        \/\/ setStateDescription will not send out event if the description is unchanged.\n        setDefaultStateDescritption();\n    }\n<\/code><\/pre>\n<h5><span class=\"ez-toc-section\" id=\"%E5%A4%84%E7%90%86%E5%8A%9E%E6%B3%95%EF%BC%9A\"><\/span>\u5904\u7406\u529e\u6cd5\uff1a<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>1.\u81ea\u5b9a\u4e49CheckBox\uff0c\u590d\u5199\u5176onTouchEvent\u65b9\u6cd5\uff0c\u63a7\u5236\u662f\u5426\u5904\u7406\u4e8b\u4ef6\u3002<\/p>\n<pre><code class=\"language-java line-numbers\">   @Override\n    public boolean onTouchEvent(MotionEvent event) {\n        isTouch = true;\n        if(canToggle){\n            return super.onTouchEvent(event);\n        }else{\n            \/\/\u8fd9\u91cc\u8981\u8bbe\u7f6e\u6210false\uff0c\u56e0\u4e3a\u6211\u60f3\u70b9\u51fbCheckBox\u65f6\uff0cCheckBox\u4e0d\u8981\u62e6\u622a\u4e8b\u4ef6\u3002\n            return false;\n        }\n    }\n<\/code><\/pre>\n<p>2.\u81ea\u5b9a\u4e49OnTouchCheckedChangeListener\uff0c\u9650\u5236\u53ea\u6709Touch\u4e8b\u4ef6\u89e6\u53d1\u7684onChange\u624d\u53bb\u56de\u8c03\u3002<\/p>\n<pre><code class=\"language-java line-numbers\">public void setOnTouchCheckedChangeListener(OnTouchCheckedChangeListener onTouchCheckedChangeListener) {\n        this.onTouchCheckedChangeListener = onTouchCheckedChangeListener;\n        this.setOnCheckedChangeListener(new OnCheckedChangeListener() {\n            @Override\n            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {\n                if(isTouch &amp;&amp; onTouchCheckedChangeListener != null){\n                    onTouchCheckedChangeListener.onCheckedChanged(buttonView, isChecked);\n                }\n                isTouch = false;\n            }\n        });\n    }\n\n    \/**\n     * \u53ea\u76d1\u542cTouch\u72b6\u6001\u4e0b\u7684\u72b6\u6001\u53d8\u5316\n     *\/\n    public abstract static class OnTouchCheckedChangeListener implements OnCheckedChangeListener{}\n<\/code><\/pre>\n<h1><span class=\"ez-toc-section\" id=\"%E6%9C%80%E7%BB%88%E8%87%AA%E5%AE%9A%E4%B9%89CheckBox%E7%9A%84%E6%BA%90%E7%A0%81\"><\/span>\u6700\u7ec8\u81ea\u5b9a\u4e49CheckBox\u7684\u6e90\u7801<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<pre><code class=\"language-java line-numbers\">package com.szlanyou.baseappmodule.view;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport android.view.MotionEvent;\nimport android.widget.CheckBox;\nimport android.widget.CompoundButton;\n\nimport androidx.annotation.NonNull;\nimport androidx.annotation.Nullable;\n\n\/**\n * @author \u9648\u7ae0\n * create at 2020\/12\/4 14:32\n * desc:\n * 1)\u53ef\u4ee5\u8bbe\u7f6e\u4e0d\u5141\u8bb8\u624b\u52a8\u70b9\u51fb\u6539\u53d8\u72b6\u6001\u7684CheckBox,\u53ea\u80fd\u901a\u8fc7\u8c03\u7528{@link #setChecked(boolean)}\u6216\u8005{@link #toggle()}\u65b9\u6cd5\u6539\u53d8\u9009\u4e2d\u72b6\u6001\u3002\n * 2)\u53ef\u4ee5\u76d1\u542c\u53ea\u6709\u5728\u624b\u52a8\u70b9\u51fb\u4e0b\u72b6\u6001\u6539\u53d8\uff0c\u901a\u8fc7{@link #setChecked(boolean)}\u6216\u8005{@link #toggle()}\u89e6\u53d1\u7684\u72b6\u6001\u53d8\u5316\u5219\u4e0d\u76d1\u542c\u3002\n *\/\npublic class ToggleControlCheckBox extends androidx.appcompat.widget.AppCompatCheckBox {\n    private boolean canToggle = true;\n    private boolean isTouch = false;\n\n    private OnTouchCheckedChangeListener onTouchCheckedChangeListener;\n\n    public ToggleControlCheckBox(@NonNull Context context) {\n        super(context);\n    }\n\n    public ToggleControlCheckBox(@NonNull Context context, @Nullable AttributeSet attrs) {\n        super(context, attrs);\n    }\n\n    public ToggleControlCheckBox(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {\n        super(context, attrs, defStyleAttr);\n    }\n\n    @Override\n    public boolean onTouchEvent(MotionEvent event) {\n        isTouch = true;\n        if(canToggle){\n            return super.onTouchEvent(event);\n        }else{\n            \/\/\u8fd9\u91cc\u8981\u8bbe\u7f6e\u6210false\uff0c\u56e0\u4e3a\u6211\u60f3\u70b9\u51fbCheckBox\u65f6\uff0cCheckBox\u4e0d\u8981\u62e6\u622a\u4e8b\u4ef6\u3002\n            return false;\n        }\n    }\n\n    public void setCanToggle(boolean canToggle) {\n        this.canToggle = canToggle;\n    }\n\n    public OnTouchCheckedChangeListener getOnTouchCheckedChangeListener() {\n        return onTouchCheckedChangeListener;\n    }\n\n    public void setOnTouchCheckedChangeListener(OnTouchCheckedChangeListener onTouchCheckedChangeListener) {\n        this.onTouchCheckedChangeListener = onTouchCheckedChangeListener;\n        this.setOnCheckedChangeListener(new OnCheckedChangeListener() {\n            @Override\n            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {\n                if(isTouch &amp;&amp; onTouchCheckedChangeListener != null){\n                    onTouchCheckedChangeListener.onCheckedChanged(buttonView, isChecked);\n                }\n                isTouch = false;\n            }\n        });\n    }\n\n    \/**\n     * \u53ea\u76d1\u542cTouch\u72b6\u6001\u4e0b\u7684\u72b6\u6001\u53d8\u5316\n     *\/\n    public abstract static class OnTouchCheckedChangeListener implements OnCheckedChangeListener{}\n}\n\n<\/code><\/pre>\n<button class=\"simplefavorite-button\" data-postid=\"4051\" data-siteid=\"1\" data-groupid=\"1\" data-favoritecount=\"0\" style=\"\">\u6536\u85cf <i class=\"sf-icon-star-empty\"><\/i><\/button>","protected":false},"excerpt":{"rendered":"<p>\u76ee\u5f55 \u529f\u80fd\u573a\u666f\u95ee\u9898\uff1a\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0cCheckBox\u4e00\u70b9\u51fb\u5c31\u4f1a\u53cd\u8f6c\u72b6\u6001\uff0c\u56de\u8c03onCheckedChang [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[152],"tags":[],"_links":{"self":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/4051"}],"collection":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4051"}],"version-history":[{"count":3,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/4051\/revisions"}],"predecessor-version":[{"id":4054,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/4051\/revisions\/4054"}],"wp:attachment":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4051"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}