写了一个布局界面,放了一个EditText和其他一些组件,进入activity的时候EditText自动获得焦点并弹出输入法
解决:
在其他组件上加上
android:focusable="true" android:focusableInTouchMode="true"
让该组件获得焦点就行了。
实现在点击其他地方后使得EditText失去焦点并隐藏键盘。
先来说一下隐藏键盘吧:
InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEtSearch.getWindowToken(),0);
我的做法是让EditText所在的layout响应点击事件获得焦点,并隐藏键盘
public void onClick(View view) { switch (view.getId()){ case R.id.course_content: mContent.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEtSearch.getWindowToken(),0); Log.v(TAG,"click"); break; } }
就这么短短的几行代码我找了好几个小时+N次试验
这个方法至少可以实现效果,不知道还有没有更好的方法,希望有更好的方法的朋友评论一下