{"id":374,"date":"2020-04-15T16:04:57","date_gmt":"2020-04-15T08:04:57","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=374"},"modified":"2020-07-01T10:10:47","modified_gmt":"2020-07-01T02:10:47","slug":"github-%e5%a5%bd%e7%94%a8%e5%88%86%e4%ba%abandroid-pickerview%e9%a1%af%e7%a4%ba%e6%b0%91%e5%9c%8b%e5%b9%b4","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/github-%e5%a5%bd%e7%94%a8%e5%88%86%e4%ba%abandroid-pickerview%e9%a1%af%e7%a4%ba%e6%b0%91%e5%9c%8b%e5%b9%b4\/","title":{"rendered":"Github \u597d\u7528\u5206\u4eabAndroid PickerView\u986f\u793a\u6c11\u570b\u5e74"},"content":{"rendered":"<h3>1.\u5148\u5c0e\u5165\u51fd\u793a\u5eab(build.gradle: Module)<\/h3>\n<pre><code class=\"language-Gradle line-numbers\">dependencies {\n     implementation 'com.contrarywind:Android-PickerView:4.1.9'\n}\n<\/code><\/pre>\n<h3>2.\u81ea\u5b9a\u7fa9\u9700\u8981\u4e09\u500b\u9663\u5217\u986f\u793a<\/h3>\n<pre><code class=\"language-Java line-numbers\">private ArrayList&lt;String&gt; year = new ArrayList&lt;&gt;();\nprivate ArrayList&lt;String&gt; month = new ArrayList&lt;&gt;();\nprivate ArrayList&lt;String&gt; day = new ArrayList&lt;&gt;();\nprivate int nowYear;\nprivate int nowMonth;\nprivate int nowDay;\n\nprivate void getAllDate() {\n    Calendar calendar = Calendar.getInstance();\n    nowYear = calendar.get(Calendar.YEAR) - 1911;\n    for (int i = 1; i &lt;= nowYear; i++) {\n        year.add(\"\u6c11\u570b\" + i + \"\u5e74\");\n    }\n\n    nowMonth = calendar.get(Calendar.MONTH) + 1;\n    for (int i = 1; i &lt;= 12; i++) {\n        month.add(i + \"\u6708\");\n    }\n\n    nowDay = calendar.get(Calendar.DAY_OF_MONTH);\n    for (int i = 1; i &lt;= 31; i++) {\n        day.add(i + \"\u65e5\");\n    }\n}\n<\/code><\/pre>\n<h3>3.\u5275\u5efa\u81ea\u5b9a\u7fa9PickerView<\/h3>\n<pre><code class=\"language-Java line-numbers\">DatePicker = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {\n        @Override\n        public void onOptionsSelect(int options1, int options2, int options3, View v) {\n            String year = String.valueOf((options1+1));\n            String month = String.valueOf((options2+1));\n            String day = String.valueOf((options3+1));\n\n            if (year.length() &lt; 3) {\n                year = \"0\" + year;\n            } else if (month.length() == 1) {\n                month = \"0\" + month;\n            } else if (day.length() == 1) {\n                day = \"0\" + day;\n            }\n            date.setText( year + \"\/\" + month + \"\/\" + day);\n            year.clear();\n            month.clear();\n            day.clear();\n        }\n    })\n            .setOptionsSelectChangeListener(new OnOptionsSelectChangeListener() {\n                @Override\n                public void onOptionsSelectChanged(int options1, int options2, int options3) {\n                    Calendar calendar = Calendar.getInstance();\n                    \/\/\u7528\u897f\u5143\u5e74\u8ddf\u6708 \u53bb\u63db\u6700\u5927\u7684\u5929\u6578\n                    calendar.set(Calendar.YEAR, options1 + 1912);\n                    calendar.set(Calendar.MONTH, options2);\n                    calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));\n                    \/\/\u53ea\u6293\u53d6\u5929\n                    @SuppressLint(\"SimpleDateFormat\") DateFormat formatter = new SimpleDateFormat(\"dd\");\n                    String endDate = formatter.format(calendar.getTime());\n                    changeTheDay(Integer.parseInt(endDate), options1, options2, options3);\n                }\n            })\n            .setSubmitText(\"\u78ba\u5b9a\")\n            .setContentTextSize(20)\n            .build();\n    DatePicker.setNPicker(year, month, day);\n    DatePicker.setSelectOptions(nowYear, nowMonth - 1, nowDay);\n    DatePicker.show();\n    constraintLayout.setOnClickListener(new View.OnClickListener() {\n        @Override\n        public void onClick(View v) {\n            DatePicker.show();\n        }\n    });\n<\/code><\/pre>\n<h3>4.\u81ea\u52d5\u5224\u65b7\u5929\u6578<\/h3>\n<pre><code class=\"language-Java line-numbers\">private void changeTheDay(int thisDay, int options1, int options2, int options3) {\n    day.clear();\n    for (int i = 1; i &lt;= thisDay; i++) {\n        day.add(i + \"\u65e5\");\n    }\n    DatePicker.setNPicker(year, month, day);\n    DatePicker.setSelectOptions(options1, options2, options3);\n}\n<\/code><\/pre>\n<h3>5.\u5b8c\u6574\u7a0b\u5f0f\u78bc<\/h3>\n<pre><code class=\"language-Java line-numbers\">import android.annotation.SuppressLint;\nimport android.os.Bundle;\nimport android.view.View;\nimport android.widget.TextView;\n\nimport androidx.appcompat.app.AppCompatActivity;\nimport androidx.constraintlayout.widget.ConstraintLayout;\n\nimport com.bigkoo.pickerview.builder.OptionsPickerBuilder;\nimport com.bigkoo.pickerview.listener.OnOptionsSelectChangeListener;\nimport com.bigkoo.pickerview.listener.OnOptionsSelectListener;\nimport com.bigkoo.pickerview.view.OptionsPickerView;\n\nimport java.text.DateFormat;\nimport java.text.SimpleDateFormat;\nimport java.util.ArrayList;\nimport java.util.Calendar;\n\npublic class MainActivity extends AppCompatActivity {\n\nOptionsPickerView&lt;String&gt; DatePicker;\nprivate ArrayList&lt;String&gt; year = new ArrayList&lt;&gt;();\nprivate ArrayList&lt;String&gt; month = new ArrayList&lt;&gt;();\nprivate ArrayList&lt;String&gt; day = new ArrayList&lt;&gt;();\nprivate int nowYear;\nprivate int nowMonth;\nprivate int nowDay;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.activity_main);\n    ConstraintLayout constraintLayout = findViewById(R.id.dd);\n    final TextView date = findViewById(R.id.date);\n\n    getAllDate();\n\n    DatePicker = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {\n        @Override\n        public void onOptionsSelect(int options1, int options2, int options3, View v) {\n            String year = String.valueOf((options1+1));\n            String month = String.valueOf((options2+1));\n            String day = String.valueOf((options3+1));\n\n            if (year.length() &lt; 2) {\n                year = \"0\" + year;\n            } else if (month.length() &lt; 2) {\n                month = \"0\" + month;\n            } else if (day.length() &lt; 2) {\n                day = \"0\" + day;\n            }\n            date.setText( year + \"\/\" + month + \"\/\" + day);\n        }\n    })\n            .setOptionsSelectChangeListener(new OnOptionsSelectChangeListener() {\n                @Override\n                public void onOptionsSelectChanged(int options1, int options2, int options3) {\n                    Calendar calendar = Calendar.getInstance();\n                    \/\/\u7528\u897f\u5143\u5e74\u8ddf\u6708 \u53bb\u63db\u6700\u5927\u7684\u5929\u6578\n                    calendar.set(Calendar.YEAR, options1 + 1912);\n                    calendar.set(Calendar.MONTH, options2);\n                    calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));\n                    \/\/\u53ea\u6293\u53d6\u5929\n                    @SuppressLint(\"SimpleDateFormat\") DateFormat formatter = new SimpleDateFormat(\"dd\");\n                    String endDate = formatter.format(calendar.getTime());\n                    changeTheDay(Integer.parseInt(endDate), options1, options2, options3);\n                }\n            })\n            .setSubmitText(\"\u78ba\u5b9a\")\n            .setContentTextSize(20)\n            .build();\n    DatePicker.setNPicker(year, month, day);\n    DatePicker.setSelectOptions(nowYear, nowMonth - 1, nowDay);\n    DatePicker.show();\n    constraintLayout.setOnClickListener(new View.OnClickListener() {\n        @Override\n        public void onClick(View v) {\n            DatePicker.show();\n        }\n    });\n}\n\nprivate void changeTheDay(int thisDay, int options1, int options2, int options3) {\n    day.clear();\n    for (int i = 1; i &lt;= thisDay; i++) {\n        day.add(i + \"\u65e5\");\n    }\n    DatePicker.setNPicker(year, month, day);\n    DatePicker.setSelectOptions(options1, options2, options3);\n}\n\nprivate void getAllDate() {\n    Calendar calendar = Calendar.getInstance();\n    nowYear = calendar.get(Calendar.YEAR) - 1911;\n    for (int i = 1; i &lt;= nowYear; i++) {\n        year.add(\"\u6c11\u570b\" + i + \"\u5e74\");\n    }\n\n    nowMonth = calendar.get(Calendar.MONTH) + 1;\n    for (int i = 1; i &lt;= 12; i++) {\n        month.add(i + \"\u6708\");\n    }\n\n    nowDay = calendar.get(Calendar.DAY_OF_MONTH);\n    for (int i = 1; i &lt;= nowDay; i++) {\n        day.add(i + \"\u65e5\");\n    }\n}\n}\n<\/code><\/pre>\n<h3>6.\u6548\u679c\u5c55\u793a<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/04\/18.gif\" alt=\"\" \/><\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>1.\u5148\u5c0e\u5165\u51fd\u793a\u5eab(build.gradle: Module) dependencies { implement &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[57],"tags":[56,14,63],"class_list":["post-374","post","type-post","status-publish","format-standard","hentry","category-github","tag-github","tag-java","tag-pickerview"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=374"}],"version-history":[{"count":7,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/374\/revisions"}],"predecessor-version":[{"id":603,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/374\/revisions\/603"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}