Android设置EditText默认取消焦点

Android设置EditText默认取消焦点,第1张

在Android的布局文见中,只要存在EditText,当显示此布局的时候,EditText就会默认获取焦点并打开软键盘

在EditText的父控件中,添加两个属性即可:

添加完成后的写法如下所示:

经试验,在EditText标签中添加这两行只会让软键盘隐藏,但是光标默认还是在编辑框中闪烁。

按照上文中的写法可以默认隐藏光标。

EditTextsetOnFocusChangeListener(new ViewOnFocusChangeListener() {  

      

    @Override  

    public void onFocusChange(View v, boolean hasFocus) {  

        if(hasFocus){//获得焦点  

              

        }else{//失去焦点  

            

        }  

    }             

});

可以参考如下代码:EditText editText = (EditText) findViewById(Ridsearch_text);//给editText增加获得焦点的响应editTextsetOnFocusChangeListener(new OnFocusChangeListener(){@Overridepublic void onFocusChange(View v, boolean hasFocus){if(hasFocus){//获得焦点时,修改背景属性//Rdrawableedit_text_bg_focus为背景资源

方法就是:让EditText所在的layout获得焦点。

给layout注册OnTouchListener监听器

直接使用 requestFocus() 无法获取焦点,焦点依然在EditTtext上

先调用下面这两个方法:

setFocusable(true);

setFocusableInTouchMode(true);

再调用 requestFocus() 就可获取焦点

relativesetOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

relativesetFocusable(true);

relativesetFocusableInTouchMode(true);

relativerequestFocus();

return false;

}

});

亲测可行:

et_nicnamesetFocusable(true);

et_nicnamesetFocusableInTouchMode(true);

et_nicnamerequestFocus();

Timer timer = new Timer();

timerschedule(new TimerTask() { //让软键盘延时d出,以更好的加载Activity

public void run() {

InputMethodManager inputManager =

(InputMethodManager)et_nicnamegetContext()

getSystemService(ContextINPUT_METHOD_SERVICE);

inputManagershowSoftInput(et_nicname, 0);

}

}, 800);

public MyTextWatcher(EditText editText){

mEditText = editText;

mEditTextsetFocusable(true);

}

试试看

以上就是关于Android设置EditText默认取消焦点全部的内容,包括:Android设置EditText默认取消焦点、android 怎么在代码中判断edittext有没有获取焦点、EditText获得焦点时的背景如何修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9485118.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存