自学鸿蒙应用开发(7)- Picker组件
picker
本文介绍在鸿蒙应用中Picker组件的基本用法。
增加Picker组件
如下代码中46行~56行所示,在布局中增加Picker组件。
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">
<Component
ohos:height="0vp"
ohos:weight="3"
ohos:width="match_parent"
/>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_content"
ohos:width="match_content"
ohos:layout_alignment="center"
ohos:orientation="vertical">
<Image
ohos:id="$+id:image"
ohos:width="match_content"
ohos:height="match_content"
ohos:layout_alignment="center"
ohos:image_src="$media:DevEco"
/>
<TextField
ohos:id="$+id:text_field"
ohos:width="match_parent"
ohos:height="30vp"
ohos:text_size="20fp"
ohos:text_alignment="center"
ohos:hint="Please input text and press [Click me!] button."
ohos:background_element="$graphic:background_text_field"
/>
<Button
ohos:id="$+id:hello_button"
ohos:width="match_content"
ohos:height="match_content"
ohos:text_size="27fp"
ohos:text="Click me!"
ohos:layout_alignment="center"
ohos:background_element="$graphic:background_button"
ohos:margin="15vp"
ohos:right_padding="8vp"
ohos:left_padding="8vp"
/>
<Picker
ohos:id="$+id:test_picker"
ohos:height="match_content"
ohos:width="300vp"
ohos:min_value="0"
ohos:max_value="6"
ohos:wheel_mode_enabled="true"
ohos:background_element="#E1FFFF"
ohos:layout_alignment="horizontal_center"
ohos:normal_text_size="16fp"
ohos:selected_text_size="32fp"/>
</DirectionalLayout>
<Component
ohos:height="0vp"
ohos:weight="5"
ohos:width="match_parent"
/>
</DirectionalLayout>
代码中组件id被指定为test_picker,会在下面的响应代码中用到。
获取Picker组件设定和取得表示信息
如下面代码中30行和36行所示,在获取PIcker组件后,设定表示信息并在动作响应代码将最新表示信息设定到TextField组件上。
package com.example.helloharmony.slice;
import com.example.helloharmony.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.Picker;
import ohos.agp.components.TextField;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.window.dialog.ToastDialog;
public class ComponentAbilitySlice extends AbilitySlice {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_component);
//获取textfield输入组件
TextField tf = (TextField) findComponentById(ResourceTable.Id_text_field);
//获取button组件
Button button = (Button) findComponentById(ResourceTable.Id_hello_button);
// 为按钮设置点击事件回调
button.setClickedListener(new Component.ClickedListener() {
public void onClick(Component v) {
new ToastDialog(getContext())
.setText(tf.getText())
.show();
}
});
//获取picker组件
Picker picker = (Picker) findComponentById(ResourceTable.Id_test_picker);
//设定表示文字
picker.setDisplayedData(new String[]{"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"});
//设定事件响应
picker.setValueChangedListener((picker1, oldVal, newVal) -> {
tf.setText(picker1.getDisplayedData()[newVal - picker1.getMinValue()]);
});
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
画面显示如下:
参考文档
Picker类:
https://developer.harmonyos.com/cn/docs/documentation/doc-references/picker-0000001054119976
Picker组件:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-picker-0000001059807909
新书介绍
《实战Python设计模式》是作者最近出版的新书,拜托多多关注!
本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。
对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。
觉得本文有帮助?请分享给更多人。
关注微信公众号【面向对象思考】轻松学习每一天!
面向对象开发,面向对象思考!
自学鸿蒙应用开发(7)- Picker组件相关推荐
- 自学鸿蒙应用开发(3)- 你好,鸿蒙!
Node.js和DevEco安装完成之后,就可以开始我们的鸿蒙App开发之旅啦! 第一次启动DevEco 通过如上图的桌面图标启动前文安装的DevEco软件. 初始画面. 画面显示一些基本的设置好信息 ...
- 自学鸿蒙应用开发(25)- 基本的CommonDialog
动作演示 对话框是应用程序的主要输入手段之一,但是遗憾的是目前鸿蒙的开发网站上只有ToastDialog用法,其他类型的对话框则只能参考为数不多的英文文档. 以下是作者经过不断尝试,终于鼓捣出来的Co ...
- 自学鸿蒙应用开发(43)- 秒表应用开发(1)
从本篇文章开始,边学边练开发一个秒表应用,本文是本系列的第一篇:绘制表盘.先看演示视频: 秒表应用开发(1) 准备布局 内容很简单,一个Text组件加上自定义的秒表组件. <?xml versi ...
- 自学鸿蒙应用开发(44)- 秒表应用开发(2)
经过几天的开发,秒表应用终于初具规模了,先看执行效果: 秒表应用开发2 指针式秒表组件 下面是自定义指针式模拟秒表组件的实现代码.具体内容参见注释. //指针式秒表组件类public class An ...
- 自学鸿蒙应用开发(26)- 自定义CommonDialog
执行效果 上一篇文章中说过,直接使用鸿蒙系统中的CommonDialog大致是下面的效果: 这个效果实在是无法用于实际的应用开发.本文介绍如何定制自己的CommonDialog.还是先看演示视频: C ...
- 鸿蒙应用开发--组件
鸿蒙应用开发–组件 组件分类为显示类组件和交互类组件 ID:id 高度height:match_content包裹内容\match_parent填充父类 宽度width:match_content包裹 ...
- 鸿蒙应用开发教程第15期:弹框组件教学!
此前的手机市场上可以依靠系统划分为两个阵营,分别是安卓系统阵营与iOS系统阵营.现在国内的手机市场啊,变化可真不是一般的大. 由于此前国内手机市场上华为的巨变,不但在手机的网络上跨越了时代,在系统方面 ...
- 鸿蒙应用开发教程第12期:被央视点名!打破垄断志在必得?
鸿蒙操作系统诞生以来,国家一直以来都给予了最大的支持,央视也对鸿蒙系统高度重视. *图片来自网络,如侵删 近期,鸿蒙系统再次得到了央视的点名,根据央视提供的信息显示,目前鸿蒙系统的总用户数已经成功突破 ...
- 微信小程序自定义组件之Picker组件
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 需求: 通过JS条件判断,满足条件就弹出Picker给用户选择一个数组里面的数据. 有些朋友可能会有疑问: 1 ...
最新文章
- HTTP协议中的chunked编码解析
- 明明白白你的Linux服务器——硬件篇
- c++ cef 获取内容_敢达争锋对决NT敢达C装备增援活动进行中!
- 如何创建圆角 UITextField 与内阴影
- linux centos8下载,在Centos8上安装和使用curl
- tensorflow 版本列表,如何找到我的系统中安装了哪个版本的TensorFlow?
- ubuntu的web服务器_如何在Ubuntu上安装OpenLiteSpeed Web服务器?
- 20+个很棒的Android开源项目
- Clojure 学习入门(17)- 异常处理
- 基于微信小程序点餐系统的设计与实现(含word论文)
- Maven Dependency设置,详解!
- HashMap底层数据结构详解
- STM32H743 USART1 LL 库
- AndroidStudio 实现用户登录注册
- 让老板满意的工作是:汇报工作说结果、请示工作说方案、总结工作说流程、布置工作说标准
- 【全国卷】程序员的自主命题!一本正经聊技术、代码,以及。。。。。。
- RNA-seq全流程分析
- 7-PHP代码审计——wordpress插件漏洞分析
- 笔记本外接显示器如何调亮度
- 基于安卓Android的电子废弃物回收利用APP