字段是什么意思(鸿蒙系统应用程序开发)
admin
2023-09-29 08:02:39
0

鸿蒙App开发之TextField

经过前面对文字和按钮的解释,我们实现了一个拨号界面。但实际上拨号号码显示并没有使用文本组件,因为删除起来太麻烦了。

拨号界面的真正组件是TextField文本框。同时,它也继承自文本组件:

publiclclasstextfield extends text与上一章相同。今天我们将解释TextField文本框的用法。

创建TextField

首先,我们仍然使用XML布局文件来创建TextField组件。示例代码如下:

textfield ohos : height=' 40vp ' ohos : width=' match _ parent ' ohos : text _ size=' 25vp ' ohos : margin=' 20vp ' ohos : padding=' 5vp ' ohos : background _ El Element=' $ graphic 3: background _ ability _ main ' ohos 3360 hint='请输入用户名' ohos 3360 basage=' # 000

这里有几个重要的数据需要我们注意,如下表所示:

属性

意义

暗示

文本框提示内容

地下室

输入框的基线是图中的绿色直线。

文本对齐

输入垂直居中。

元素_光标_气泡

文字的光标气泡就是图中的绿色圆圈。

多行

多行显示

文本输入类型

例如,如果密码设置为pattern_password,则只显示* * *符号。

我们没有在上面的代码中设置这个属性。接下来,我们把它改成长方形的红色。示例代码如下:

ohos : element _ cursor _ bubble=' $ graphic : textfield_bubble '这里我们只需要添加一行属性,图形文件夹下textfield _ bubble的内容如下:

?xmlversion='1.0 '编码='UTF-8 'shape xmlns : hos=' http://schemas.huawei.com/res/ohos' ohos : shape='矩形' solidohos 3360 color=' # ff 0000 '/shape,效果如下:

从010到1010,我们已经学习了三个组件:文本、按钮和文本字段。

通过这三个组件,我们完全可以在手机上实现登录界面。下面,我们来实现登录界面的效果。

首先是我们的XML布局文件,代码如下:

?xmlversion='1.0 '编码='utf-8 'directional layout xmlns : ohos=' http://schemas . Huawei.com/RES/ohos ' ohos : height=' match _ parent ' ohos : width=' match _ parent ' ohos : alignment=' center ' ohos : background _ element=' $ media : background ' ohos : orientation=' vertical ' textohos 3360 height=' match _ content ' ohos :

rgin="20vp"ohos:text="登录界面"/>

Java页面代码:

packagecom.liyuanjing.idacommunity.slice;importcom.liyuanjing.idacommunity.ResourceTable;importohos.aafwk.ability.AbilitySlice;importohos.aafwk.content.Intent;importohos.agp.components.Button;importohos.agp.components.Component;importohos.agp.components.Text;importohos.agp.components.TextField;importohos.agp.components.element.ShapeElement;publicclassMainAbilitySliceextendsAbilitySlice{privateTextFieldusername_textField;privateTextFieldpassword_textField;privateButtonlogin_button;privateTextusername_text;privateTextpassword_text;@OverridepublicvoidonStart(Intentintent){super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//设置输入框不被软键盘遮挡getWindow().setInputPanelDisplayType(WindowManager.LayoutConfig.INPUT_ADJUST_PAN);this.username_textField=(TextField)findComponentById(ResourceTable.Id_textfield_username);this.password_textField=(TextField)findComponentById(ResourceTable.Id_textfield_password);this.login_button=(Button)findComponentById(ResourceTable.Id_button_login);this.username_text=(Text)findComponentById(ResourceTable.Id_text_username);this.password_text=(Text)findComponentById(ResourceTable.Id_text_password);this.login_button.setClickedListener(newComponent.ClickedListener(){@OverridepublicvoidonClick(Componentcomponent){username_text.setVisibility(Component.VISIBLE);password_text.setVisibility(Component.VISIBLE);//改变TextField错误样式ShapeElementerrorElement=newShapeElement(MainAbilitySlice.this,ResourceTable.Graphic_textfield_error);username_textField.setBackground(errorElement);password_textField.setBackground(errorElement);}});this.username_textField.setFocusChangedListener(newComponent.FocusChangedListener(){@OverridepublicvoidonFocusChange(Componentcomponent,booleanb){if(b){//获取到焦点if(username_text.getVisibility()==Component.VISIBLE){username_text.setVisibility(Component.INVISIBLE);}}else{//失去焦点ShapeElementbackgroundElement=newShapeElement(MainAbilitySlice.this,ResourceTable.Graphic_background_ability_main);username_textField.setBackground(backgroundElement);}}});this.password_textField.setFocusChangedListener(newComponent.FocusChangedListener(){@OverridepublicvoidonFocusChange(Componentcomponent,booleanb){if(b){//获取到焦点if(password_text.getVisibility()==Component.VISIBLE){password_text.setVisibility(Component.INVISIBLE);}}else{//失去焦点ShapeElementbackgroundElement=newShapeElement(MainAbilitySlice.this,ResourceTable.Graphic_background_ability_main);password_textField.setBackground(backgroundElement);}}});}@OverridepublicvoidonActive(){super.onActive();}@OverridepublicvoidonForeground(Intentintent){super.onForeground(intent);}}

默认TextField样式(background_ability_main.xml):

点击登录后TextField样式(textfield_error.xml):

这里需要注意的是,通过Java改变TextField的代码为:

ShapeElementbackgroundElement=newShapeElement(MainAbilitySlice.this,ResourceTable.Graphic_background_ability_main);username_textField.setBackground(backgroundElement);

同样的,TextField获取焦点事件以及失去焦点事件由FocusChangedListener进行实现,代码如下:

this.password_textField.setFocusChangedListener(newComponent.FocusChangedListener(){@OverridepublicvoidonFocusChange(Componentcomponent,booleanb){if(b){//获取到焦点}else{//失去焦点}}});

最终实现的效果如首图所示。

相关内容

热门资讯

肺结核患者可以吃榴莲吗 肺结核... 肺结核患者可以适量食用榴莲。肺结核患者适量食用榴莲是可以的。榴莲是一种水果,富含维生素C、维生素B6...
阴部萎缩能好吗 阴部萎缩可以通过治疗和综合管理得到改善。阴部萎缩的改善取决于个体情况和治疗方法。阴部萎缩是女性阴部组...
取卵到底要不要麻醉 取卵过程中是否需要麻醉,最终的结论是取决于个体的情况和医生的建议。取卵手术一般是在体外受精(IVF)...
室间隔缺损2.5mm严重吗 室间隔缺损2.5mm在某些情况下可能是严重的。室间隔缺损是心脏疾病中的一种,它指的是心室之间的隔壁出...
胸膜局部增厚严重吗 胸膜局部增... 胸膜局部增厚不算严重,但需要进一步观察和评估。胸膜局部增厚通常是胸膜炎症的表现之一,引起增厚的原因可...
可以吃海带吗 可以吃的昆虫 可以吃海带。海带是一种海洋蔬菜,含有丰富的营养物质,因此可以作为食物食用。海带富含蛋白质、膳食纤维、...
吃槐耳颗粒能喝绿豆汤吗 吃槐耳... 吃槐耳颗粒可以喝茶水。槐耳颗粒是一种中药材,具有清热解毒、利尿消肿的功效。茶水是一种饮品,对于大多数...
嗓子哑跟甲状腺有关吗 嗓子哑跟... 嗓子哑与甲状腺有一定关系。嗓子哑可能与甲状腺相关,但并非绝对。甲状腺是人体内分泌系统中一个重要的腺体...
混合痔手术是小手术吗 混合痔手术可以被视为一种较为简单的小手术。混合痔手术通常是通过局部麻醉进行的,手术时间相对较短,术后...
支气管肺炎是感冒吗 支气管肺炎... 支气管肺炎不是感冒。支气管肺炎和感冒是两种不同的疾病。感冒是由于感冒病毒引起的上呼吸道感染,主要症状...
坐月子是多少天可以出门 坐月子的天数可以根据个人情况而定,但一般建议在产后40天左右才可以出门。坐月子是指产后女性休养的一段...
乳清蛋白粉是运动前喝还是运动后... 乳清蛋白粉既可以在运动前喝,也可以在运动后喝。乳清蛋白粉是一种高蛋白的营养补充品,对于运动者来说,它...
咽喉炎可以吃姜吗 咽喉炎可以吃... 咽喉炎可以适量食用姜。姜具有一定的抗菌、消炎和镇痛作用,适量食用姜可缓解咽喉炎引起的症状。姜中的挥发...
髌骨骨折可以自愈吗 髌骨骨折可... 髌骨骨折不能自愈,但需经过适当治疗可以获得较好的康复效果。髌骨骨折发生后,由于髌骨是关节的一部分,其...
烧多少度可以吃奥司他韦 烧多少... 应根据个人情况和医生建议来决定使用退烧药的温度阈值。退烧药的使用应该根据个人的体温以及医生的建议来决...
感染新冠会引起颈椎病加重吗 感... 感染新冠不会直接引起牙疼。目前的研究和临床观察表明,牙疼不是新冠病毒感染的常见症状。新冠病毒主要通过...
来月经可以跑步吗跑多久合适 来月经可以跑步,但需要适度控制运动的强度和时间。来月经期间可以进行跑步,因为适度的运动可以促进血液循...
三七粉能降血压高吗怎么吃 三七粉对降血压高起到一定的作用,但不能绝对地说它能完全降低血压。三七粉含有一些具有降血压作用的活性成...
湿热可以泡澡吗 湿热可以泡脚祛... 湿热可以泡澡,但需要谨慎。湿热是一种中医上的病理概念,指身体内湿气和热气过多积聚导致的症状。一般来说...
儿童得了血管炎能治好吗 儿童得了血管炎可以治好,但结果可能因个体差异而有所不同。血管炎是一种血管内膜的炎症性疾病,儿童得了血...