
在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获得焦点时的背景如何修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)