键盘甚至没有显示editText.requestFocus

时间:2015-07-22 03:20:15

标签: android

我正在尝试在创建活动时显示键盘。但键盘没有显示。

我正在使用Nexus_5_API_22_x86模拟器

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ex);
    EditText editText = (EditText) findViewById(R.id.ex);
    InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
    imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
    editText.requestFocus();
}

可能是什么问题?

我也试过在启动时没有显示键盘:

@Override
public void onResume() {
    super.onResume();  // Always call the superclass method first

    TimerTask tt = new TimerTask() {

        @Override
        public void run() {
            EditText editText = (EditText) findViewById(R.id.ex);
            editText.requestFocus();
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
        }
    };

    final Timer timer = new Timer();
    timer.schedule(tt, 200);

}

2 个答案:

答案 0 :(得分:1)

我做了一个例子来看看这个,并且对我有效的线是打开

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

这将关闭

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

修改

我在三星Galaxy S4(真实设备)中试过我的例子

在模拟器中,键盘不会显示

答案 1 :(得分:0)

您是否曾尝试像这样设置requestFocus()

editText.requestFocus();
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);