问题:新打开acitivyt时,界面中的输入框获得到焦点,自动弹出软键盘
期望效果:activity,打开,软年盘不自动打开。当点击editText,再打开软键盘
解决方案:
<activity android:name="SelectPartsActivity"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateHidden|stateAlwaysHidden"
label="配件选择"/>
清单文件activity中添加android:windowSoftInputMode属性。该属性具体内容详解见文章:
http://wangxuefang.iteye.com/admin/blogs/1672517
网上找的另一种解决方案,本人未测试,不知是否可用:
文章地址:http://hustpawpaw.blog.163.com/blog/static/184228324201182765548511/
程序启动后直接弹出软键盘,不能直接在OnCreate中设置,必须等View绘制事件完毕才可以弹出,需要用到Timer辅助实现,如果要实现输入的功能,必须让EditText获得焦点
//应用启动后自动打开输入法
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager)MainActivity.this.getSystemService(INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
Toast.makeText(MainActivity.this, "show", Toast.LENGTH_SHORT).show();
}
}, 1000); //在一秒后打开
}
自动关闭:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);