永发信息网

如何让 EditText 在 Activity 启动时不获得焦点

答案:2  悬赏:30  手机版
解决时间 2021-02-10 15:00
  • 提问者网友:骨子里的高雅
  • 2021-02-10 02:45
如何让 EditText 在 Activity 启动时不获得焦点
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-02-10 03:02
如何让 EditText 在 Activity 启动时不获得焦点
在进入一个Activity时,如果这个Activity中有EditText,则这个EditText会自动获取焦点,然后就会弹出软键盘,这样给用户体验不是很好。所以一般会通过代码控制让EditText不获取焦点。常用的方式如下,在Activity的布局文件中加上如下代码:


android:layout_width="0px"
android:layout_height="0px"
android:focusable="true"
android:focusableInTouchMode="true" />
在日前开发的一个项目中界面中除了EditText就是Spinner 和Button等空间,EditText 获取焦点以后,点击Spinner总是无法移除焦点:采取如下方式解决,
当点击Spinner时让EditText失去焦点即可:(见标红代码)
全部回答
  • 1楼网友:北方的南先生
  • 2021-02-10 03:59
在进入一个activity时,如果这个activity中有edittext,则这个edittext会自动获取焦点,然后就会弹出软键盘,这样给用户体验不是很好。所以一般会通过代码控制让edittext不获取焦点。常用的方式如下,在activity的布局文件中加上如下代码: <!-- 输入焦点控制 --> <linearlayout android:layout_width="0px" android:layout_height="0px" android:focusable="true" android:focusableintouchmode="true" /> 在日前开发的一个项目中界面中除了edittext就是spinner 和button等空间,edittext 获取焦点以后,点击spinner总是无法移除焦点:采取如下方式解决, 当点击spinner时让edittext失去焦点即可:(见标红代码) // 初始化两个layoutinflater对象 inflater = (layoutinflater) getsystemservice(context.layout_inflater_service); layoutinflater = (layoutinflater) getsystemservice(context.layout_inflater_service); et_name = (edittext) findviewbyid(r.id.et_name); ib_add = (imagebutton) findviewbyid(r.id.ib_add); ib_clear = (button) findviewbyid(r.id.ib_clear); ib_query = (button) findviewbyid(r.id.ib_query); ib_down = (button) findviewbyid(r.id.ib_down); ib_save = (button) findviewbyid(r.id.ib_save); ib_back = (imagebutton) findviewbyid(r.id.ib_back); // ib_sex = (imagebutton) findviewbyid(r.id.ib_sex) ; ib_add.setonclicklistener(this); ib_clear.setonclicklistener(this); ib_query.setonclicklistener(this); ib_down.setonclicklistener(this); ib_save.setonclicklistener(this); ib_back.setonclicklistener(this); // ib_sex.setonclicklistener(this) ; // 性别 arrayadapter<string> sexadapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item); sexadapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); string sexstring; sexadapter.clear(); int position = 0; for (int i = 0; i < sexlist.length; i++) { sexstring = sexlist[i]; sexadapter.add(sexstring); } sp_sex = (spinner) findviewbyid(r.id.sp_sex); sp_sex.setadapter(sexadapter); sp_sex.setfocusable(true); sp_sex.setselection(position); sp_sex.setontouchlistener(new ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { // todo auto-generated method stub et_name.clearfocus(); return false; } }); sp_sex.setontouchlistener(new ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { // todo auto-generated method stub et_name.clearfocus(); return false; } }); sp_month.setontouchlistener(new ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { // todo auto-generated method stub et_name.clearfocus(); return false; } }); sp_customerlevel.setonitemselectedlistener(new onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { textview v1 = (textview) view; if (v1 != null) v1.settextcolor(color.black); // 可以随意设置自己要的颜色值 } @override public void onnothingselected(adapterview<?> parent) { } }); // 出生月份 arrayadapter<string> monthadapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item); monthadapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); string monthstring; monthadapter.clear(); position = 0; for (int i = 0; i < monthlist.length; i++) { monthstring = monthlist[i]; monthadapter.add(monthstring); } sp_month = (spinner) findviewbyid(r.id.sp_month); sp_month.setadapter(monthadapter); sp_month.setfocusable(true); sp_month.setselection(position); sp_month.setonitemselectedlistener(new onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { textview v1 = (textview) view; if (v1 != null) v1.settextcolor(color.black); // 可以随意设置自己要的颜色值 } @override public void onnothingselected(adapterview<?> parent) { } }); // 客户等级 arrayadapter<string> customerleveladapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item); customerleveladapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); string customerlevelstring; customerleveladapter.clear(); position = 0; for (int i = 0; i < customerlevellist.length; i++) { customerlevelstring = customerlevellist[i]; customerleveladapter.add(customerlevelstring); } sp_customerlevel = (spinner) findviewbyid(r.id.sp_customerlevel); sp_customerlevel.setadapter(customerleveladapter); sp_customerlevel.setfocusable(true); sp_customerlevel.setselection(position); sp_customerlevel.setonitemselectedlistener(new onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { textview v1 = (textview) view; if (v1 != null) v1.settextcolor(color.black); // 可以随意设置自己要的颜色值 } @override public void onnothingselected(adapterview<?> parent) { } });
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯