完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
初学鸿蒙开发的一个问题,可能的描述内容,具体实现的具体情况如下:
界面中右边有3个TextField组件,分别是TextField1,TextField2,TextField3,下边有 A ,B ,C ,D,E 五个按钮;现在要在TextField1中输入一个按钮;现在要 在TextField1 中 输入 一个按钮有时,点击中到 TextField3 时,不能在 TextField1 中输入;同理,当点击 TextField2 时,某个按钮可以在 TextField2 中持续输入字符 ;当点击 TextField3 时,某个按钮可以在 TextField3 中持续输入字符 。 用Java代码的话有什么办法的写呢?这个Java功能对我要开发的很重要,求抽出点宝贵的时间应用很具体的代码,非常感谢! 下面的Java代码已经提供了资源ID了。 package application.test.main.slice; import application.test.main.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; public class MainAbilitySlice extends AbilitySlice { private static final int[] TextField = {ResourceTable.Id_Text1,ResourceTable.Id_Text2,ResourceTable.Id_Text3}; private static final int[] keyboard = {ResourceTable.Id_A,ResourceTable.Id_B,ResourceTable.Id_C,ResourceTable.Id_D, ResourceTable.Id_E}; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } } |
|
相关推荐
5个回答
|
|
公共无效onStart(意图意图){
super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_no_11394); TextField textField1 = findComponentById(ResourceTable.Id_text_field1); TextField textField2 = findComponentById(ResourceTable.Id_text_field2); TextField textField3 = findComponentById(ResourceTable.Id_text_field3); textField1.setFocusChangedListener(this); textField2.setFocusChangedListener(this); textField3.setFocusChangedListener(this); 按钮 button1 = findComponentById(ResourceTable.Id_button1); 按钮 button2 = findComponentById(ResourceTable.Id_button2); 按钮 button3 = findComponentById(ResourceTable.Id_button3); 按钮 button4 = findComponentById(ResourceTable.Id_button4); 按钮 button5 = findComponentById(ResourceTable.Id_button5); button1.setClickedListener(this); button2.setClickedListener(this); button3.setClickedListener(this); button4.setClickedListener(this); button5.setClickedListener(this); } 公共无效onFocusChange(组件组件,布尔b){ 如果 (b) { handleFieldId = component.getId(); } } public void onClick(组件组件){ 文本字段句柄文本字段 = findComponentById(handleFieldId); if (handleTextField != null) { 按钮 clickBtn = findComponentById(component.getId()); handleTextField.setText(handleTextField.getText() + clickBtn.getText()); } } |
|
|
|
非常感谢你。确实是我想要的。我想问一下版主的代码有什么样的程序效果呢,我要开发一下,我要开发6666666个按钮,17个按钮,像写的那种可以用什么形式加循环的方式解决代码量大的办法?
|
|
|
|
可以写个初始化按钮、TextField的公共方法,添加组件的id,这样可以省去一些代码: private void initTextField(int id){ TextField textField = findComponentById(id); textField.setFocusChangedListener(this); } private void initButton(int id){ 按钮按钮 = findComponentById(id); button.setClickedListener(this); }
|
|
|
|
楼主的联想是没有任务
Button[ ] button = findComponentByIdsForArray(button1,button2, ...); 会经常还有这样的想念 |
|
|
|
到达输入框焦点就行了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
618 浏览 0 评论
777 浏览 0 评论
682 浏览 0 评论
线上逛展 | 沉浸探索第三届OpenHarmony技术大会五大展区
678 浏览 0 评论
976 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 13:15 , Processed in 0.723725 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号