1e41f4b71Sopenharmony_ci# \<picker> Development
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **\<picker>** component supports common, date, time, data and time, and multi-column text selectors. For details, see [picker](../reference/apis-arkui/arkui-js/js-components-basic-picker.md).
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci## Creating a \<picker> Component
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciCreate a **\<picker>** component in the .hml file under **pages/index**.
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci```html
11e41f4b71Sopenharmony_ci<!-- xxx.hml -->
12e41f4b71Sopenharmony_ci<div class="container">
13e41f4b71Sopenharmony_ci  <picker>    picker  </picker>
14e41f4b71Sopenharmony_ci</div>
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci```css
18e41f4b71Sopenharmony_ci/* xxx.css */
19e41f4b71Sopenharmony_ci.container {
20e41f4b71Sopenharmony_ci  width: 100%;
21e41f4b71Sopenharmony_ci  height: 100%; 
22e41f4b71Sopenharmony_ci  flex-direction: column;
23e41f4b71Sopenharmony_ci  justify-content: center;
24e41f4b71Sopenharmony_ci  align-items: center;
25e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
26e41f4b71Sopenharmony_ci}
27e41f4b71Sopenharmony_ci```
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci![en-us_image_0000001223287716](figures/en-us_image_0000001223287716.gif)
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci## Setting the Picker Type
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ciSet the **type** attribute of the **\<picker>** component. For example, set it to **date**.
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci```html
37e41f4b71Sopenharmony_ci<!-- xxx.hml -->
38e41f4b71Sopenharmony_ci<div class="container">
39e41f4b71Sopenharmony_ci  <picker id="picker_text" type="text" value="{{textvalue}}"range="{{rangetext}}" class="pickertext" ></picker>
40e41f4b71Sopenharmony_ci  <picker id="picker_date" type="date" value="{{datevalue}}" lunarswitch="true" start="2002-2-5" end="2030-6-5" class="pickerdate"></picker>
41e41f4b71Sopenharmony_ci</div>
42e41f4b71Sopenharmony_ci```
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci```css
45e41f4b71Sopenharmony_ci/* xxx.css */
46e41f4b71Sopenharmony_ci.container {
47e41f4b71Sopenharmony_ci  width: 100%;
48e41f4b71Sopenharmony_ci  height: 100%;
49e41f4b71Sopenharmony_ci  flex-direction: column;
50e41f4b71Sopenharmony_ci  justify-content: center;
51e41f4b71Sopenharmony_ci  align-items: center;
52e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
53e41f4b71Sopenharmony_ci}
54e41f4b71Sopenharmony_ci.pickertext{
55e41f4b71Sopenharmony_ci  margin-bottom: 30px;
56e41f4b71Sopenharmony_ci}
57e41f4b71Sopenharmony_ci```
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci```js
60e41f4b71Sopenharmony_ci// xxx.js
61e41f4b71Sopenharmony_ciexport default {
62e41f4b71Sopenharmony_ci  data: {
63e41f4b71Sopenharmony_ci    rangetext:['15', "20", "25"],
64e41f4b71Sopenharmony_ci    textvalue:'Select text',
65e41f4b71Sopenharmony_ci    datevalue:'Select date',
66e41f4b71Sopenharmony_ci  }
67e41f4b71Sopenharmony_ci}
68e41f4b71Sopenharmony_ci```
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci![en-us_image_0000001267647893](figures/en-us_image_0000001267647893.gif)
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci> **NOTE**
73e41f4b71Sopenharmony_ci>
74e41f4b71Sopenharmony_ci> When setting the value range of a common selector, you must use the data binding mode.
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci## Setting the Time Format
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ciSet the **hours** attribute to specify the time format used by the time picker. Available values include **12** and **24**, indicating the 12-hour format and 24-hour format, respectively.
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci```html
82e41f4b71Sopenharmony_ci<!-- xxx.hml -->
83e41f4b71Sopenharmony_ci<div class="container">
84e41f4b71Sopenharmony_ci  <picker id="picker_time" type="time" value="12-hour format" hours="12" onchange="timeonchange"  class="pickertime"></picker>
85e41f4b71Sopenharmony_ci  <picker id="picker_time" type="time" value="24-hour format" hours="24" onchange="timeonchange"  class="pickertime"></picker>
86e41f4b71Sopenharmony_ci</div>
87e41f4b71Sopenharmony_ci```
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci```css
90e41f4b71Sopenharmony_ci/* xxx.css */
91e41f4b71Sopenharmony_ci.container {
92e41f4b71Sopenharmony_ci  width: 100%;
93e41f4b71Sopenharmony_ci  height: 100%;
94e41f4b71Sopenharmony_ci  flex-direction: column;
95e41f4b71Sopenharmony_ci  justify-content: center;
96e41f4b71Sopenharmony_ci  align-items: center;
97e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
98e41f4b71Sopenharmony_ci}
99e41f4b71Sopenharmony_ci.pickertime {
100e41f4b71Sopenharmony_ci  margin-bottom:50px;
101e41f4b71Sopenharmony_ci  width: 300px;
102e41f4b71Sopenharmony_ci  height: 50px;
103e41f4b71Sopenharmony_ci}
104e41f4b71Sopenharmony_ci```
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci![en-us_image_0000001222807808](figures/en-us_image_0000001222807808.gif)
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci> **NOTE**
109e41f4b71Sopenharmony_ci> - When **hours** is set to **12**, the time is displayed in 12-hour format and distinguished by a.m. and p.m.
110e41f4b71Sopenharmony_ci>
111e41f4b71Sopenharmony_ci> - When **hours** is set to **24**, the time is displayed in 24-hour format.
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci## Adding Response Events
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ciAdd the **change** event to confirm selection and the **cancel** event to cancel selection.
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci```html
119e41f4b71Sopenharmony_ci<!-- xxx.hml -->
120e41f4b71Sopenharmony_ci<div class="container">
121e41f4b71Sopenharmony_ci  <picker id="picker_multi" type="multi-text" value="{{multitextvalue}}" columns="3" range="{{multitext}}" selected="
122e41f4b71Sopenharmony_ci     {{multitextselect}}" onchange="multitextonchange" oncancel="multitextoncancel" class="pickermuitl"></picker>
123e41f4b71Sopenharmony_ci</div>
124e41f4b71Sopenharmony_ci```
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci```css
127e41f4b71Sopenharmony_ci/* xxx.css */
128e41f4b71Sopenharmony_ci.container {
129e41f4b71Sopenharmony_ci  width: 100%;
130e41f4b71Sopenharmony_ci  height: 100%;
131e41f4b71Sopenharmony_ci  flex-direction: column;
132e41f4b71Sopenharmony_ci  justify-content: center;
133e41f4b71Sopenharmony_ci  align-items: center;
134e41f4b71Sopenharmony_ci  background-color: #F1F3F5; 
135e41f4b71Sopenharmony_ci}
136e41f4b71Sopenharmony_ci.pickermuitl {
137e41f4b71Sopenharmony_ci  margin-bottom:20px;
138e41f4b71Sopenharmony_ci  width: 600px;
139e41f4b71Sopenharmony_ci  height: 50px;
140e41f4b71Sopenharmony_ci  font-size: 25px;
141e41f4b71Sopenharmony_ci  letter-spacing:15px;
142e41f4b71Sopenharmony_ci}
143e41f4b71Sopenharmony_ci```
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci```js
146e41f4b71Sopenharmony_ci// xxx.js
147e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction';
148e41f4b71Sopenharmony_ciexport default {
149e41f4b71Sopenharmony_ci  data: {
150e41f4b71Sopenharmony_ci    multitext:[["a", "b", "c"], ["e", "f", "g"], ["h", "i"]],
151e41f4b71Sopenharmony_ci    multitextvalue:'Select multi-line text',
152e41f4b71Sopenharmony_ci    multitextselect:[0,0,0],
153e41f4b71Sopenharmony_ci  },
154e41f4b71Sopenharmony_ci  multitextonchange(e) {
155e41f4b71Sopenharmony_ci    this.multitextvalue=e.newValue;
156e41f4b71Sopenharmony_ci    promptAction.showToast({ message:"Multi-column text changed to:" + e.newValue })
157e41f4b71Sopenharmony_ci  },
158e41f4b71Sopenharmony_ci  multitextoncancel() {
159e41f4b71Sopenharmony_ci    promptAction.showToast({ message:"multitextoncancel" })
160e41f4b71Sopenharmony_ci  },
161e41f4b71Sopenharmony_ci}
162e41f4b71Sopenharmony_ci```
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci![en-us_image_0000001223127748](figures/en-us_image_0000001223127748.gif)
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci## Example Scenario
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ciImplement a health check-in application by using the **\<picker>** component.
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci```html
174e41f4b71Sopenharmony_ci<!-- xxx.hml -->
175e41f4b71Sopenharmony_ci<div class="doc-page">
176e41f4b71Sopenharmony_ci  <text class="title">Health check-in</text>
177e41f4b71Sopenharmony_ci  <div class="out-container">
178e41f4b71Sopenharmony_ci    <text class="txt">Office:</text>
179e41f4b71Sopenharmony_ci    <picker class="pick" focusable="true" type="text" value="{{pos}}" range="{{posarr}}" onchange="setPos"></picker>
180e41f4b71Sopenharmony_ci  </div>
181e41f4b71Sopenharmony_ci  <divider class="dvd"></divider>
182e41f4b71Sopenharmony_ci  <div class="out-container">
183e41f4b71Sopenharmony_ci    <text class="txt">Office hours:</text>
184e41f4b71Sopenharmony_ci    <picker class="pick" type="date" value="{{datevalue}}"  start="2002-2-5" end="2030-6-5" selected="{{dateselect}}"
185e41f4b71Sopenharmony_ci      lunarswitch="true" onchange="dateonchange"></picker>
186e41f4b71Sopenharmony_ci  </div>
187e41f4b71Sopenharmony_ci  <divider class="dvd"></divider>
188e41f4b71Sopenharmony_ci  <div class="out-container">
189e41f4b71Sopenharmony_ci    <text class="txt">Having fever or cold symptoms</text>
190e41f4b71Sopenharmony_ci    <picker class="pick" type="text" value="{{yorn1}}" range="{{yesno}}" selected="1" onchange="isFever"></picker>
191e41f4b71Sopenharmony_ci  </div>
192e41f4b71Sopenharmony_ci  <divider class="dvd"></divider>
193e41f4b71Sopenharmony_ci  <div class="out-container">
194e41f4b71Sopenharmony_ci    <text class="txt">Close contact with someone with COVID-19</text>
195e41f4b71Sopenharmony_ci    <picker class="pick" type="text" value="{{yorn2}}" range="{{yesno}}" selected="1" onchange="isTouch"></picker>
196e41f4b71Sopenharmony_ci  </div>
197e41f4b71Sopenharmony_ci  <div class="out-container">
198e41f4b71Sopenharmony_ci    <button value="Submit" style="margin-top:100px;width:50%;font-color:#0000ff;height:80px" onclick="showtoast"></button>
199e41f4b71Sopenharmony_ci  </div>
200e41f4b71Sopenharmony_ci</div>
201e41f4b71Sopenharmony_ci```
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci```css
205e41f4b71Sopenharmony_ci/* xxx.css */
206e41f4b71Sopenharmony_ci.doc-page {
207e41f4b71Sopenharmony_ci  flex-direction: column;
208e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
209e41f4b71Sopenharmony_ci}
210e41f4b71Sopenharmony_ci.title {
211e41f4b71Sopenharmony_ci  margin-top: 30px;
212e41f4b71Sopenharmony_ci  margin-bottom: 30px;
213e41f4b71Sopenharmony_ci  margin-left: 50px;
214e41f4b71Sopenharmony_ci  font-weight: bold;
215e41f4b71Sopenharmony_ci  color: #0000ff;
216e41f4b71Sopenharmony_ci  font-size: 38px;
217e41f4b71Sopenharmony_ci}
218e41f4b71Sopenharmony_ci.out-container {
219e41f4b71Sopenharmony_ci  flex-direction: column;
220e41f4b71Sopenharmony_ci  align-items: center;
221e41f4b71Sopenharmony_ci}
222e41f4b71Sopenharmony_ci.pick {
223e41f4b71Sopenharmony_ci  width: 80%;
224e41f4b71Sopenharmony_ci  height: 76px;
225e41f4b71Sopenharmony_ci  border: 1px solid #0000ff;
226e41f4b71Sopenharmony_ci  border-radius: 20px;
227e41f4b71Sopenharmony_ci  padding-left: 12px;
228e41f4b71Sopenharmony_ci}
229e41f4b71Sopenharmony_ci.txt {
230e41f4b71Sopenharmony_ci  width: 80%;
231e41f4b71Sopenharmony_ci  font-size: 18px;
232e41f4b71Sopenharmony_ci  text-align: left;
233e41f4b71Sopenharmony_ci  margin-bottom: 12px;
234e41f4b71Sopenharmony_ci  margin-left: 12px;
235e41f4b71Sopenharmony_ci}
236e41f4b71Sopenharmony_ci.dvd {
237e41f4b71Sopenharmony_ci  margin-top: 30px;
238e41f4b71Sopenharmony_ci  margin-bottom: 30px;
239e41f4b71Sopenharmony_ci  margin-left: 80px;
240e41f4b71Sopenharmony_ci  margin-right: 80px;
241e41f4b71Sopenharmony_ci  color: #6495ED;
242e41f4b71Sopenharmony_ci  stroke-width: 6px;
243e41f4b71Sopenharmony_ci}
244e41f4b71Sopenharmony_ci```
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ci```js
248e41f4b71Sopenharmony_ci// xxx.js
249e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction'
250e41f4b71Sopenharmony_ciexport default {
251e41f4b71Sopenharmony_ci  data: {
252e41f4b71Sopenharmony_ci    yorn1:'No',
253e41f4b71Sopenharmony_ci    yorn2:'No',
254e41f4b71Sopenharmony_ci    pos:'Home',
255e41f4b71Sopenharmony_ci    yesno:['Yes', 'No'],
256e41f4b71Sopenharmony_ci    posarr:['Home', 'Company'],
257e41f4b71Sopenharmony_ci    datevalue:'Select time',
258e41f4b71Sopenharmony_ci    datetimeselect:'2012-5-6-11-25',
259e41f4b71Sopenharmony_ci    dateselect:'2021-9-17',
260e41f4b71Sopenharmony_ci    showbuild:true
261e41f4b71Sopenharmony_ci  },
262e41f4b71Sopenharmony_ci  onInit() {
263e41f4b71Sopenharmony_ci  },
264e41f4b71Sopenharmony_ci  isFever(e) {
265e41f4b71Sopenharmony_ci    this.yorn1 = e.newValue
266e41f4b71Sopenharmony_ci  },
267e41f4b71Sopenharmony_ci  isTouch(e) {
268e41f4b71Sopenharmony_ci    this.yorn2 = e.newValue
269e41f4b71Sopenharmony_ci  },
270e41f4b71Sopenharmony_ci  setPos(e) {
271e41f4b71Sopenharmony_ci    this.pos = e.newValue
272e41f4b71Sopenharmony_ci    if (e.newValue === 'Non-research center') {
273e41f4b71Sopenharmony_ci      this.showbuild = false
274e41f4b71Sopenharmony_ci    } else {
275e41f4b71Sopenharmony_ci      this.showbuild = true
276e41f4b71Sopenharmony_ci    }
277e41f4b71Sopenharmony_ci  },
278e41f4b71Sopenharmony_ci  setbuild(e) {
279e41f4b71Sopenharmony_ci    this.build = e.newValue
280e41f4b71Sopenharmony_ci  },
281e41f4b71Sopenharmony_ci  dateonchange(e) {
282e41f4b71Sopenharmony_ci    e.month=e.month+1;
283e41f4b71Sopenharmony_ci    this.datevalue = e.year + "-" + e.month + "-" + e.day;
284e41f4b71Sopenharmony_ci    promptAction.showToast({ message:"date:"+e.year+"-"+e.month+"-"+e.day }) 
285e41f4b71Sopenharmony_ci  },
286e41f4b71Sopenharmony_ci  showtoast() {
287e41f4b71Sopenharmony_ci    promptAction.showToast({
288e41f4b71Sopenharmony_ci      message: 'Submitted.',
289e41f4b71Sopenharmony_ci      duration: 2000,
290e41f4b71Sopenharmony_ci      gravity: 'center'
291e41f4b71Sopenharmony_ci    })
292e41f4b71Sopenharmony_ci  }
293e41f4b71Sopenharmony_ci}
294e41f4b71Sopenharmony_ci```
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci![en-us_image_0000001267887877](figures/en-us_image_0000001267887877.gif)
298