无法在应用启动时自动打开软键盘

时间:2013-07-29 13:59:28

标签: android android-softkeyboard

我是Java和Android开发人员的先驱。

当您启动Google搜索时,会立即显示软键盘。

我正在努力做同样的事情。我搜索了很多,我发现有很多不同的方法来获得这个,问题是它们似乎都没有工作

requestFocus()方法

在我的活动中我试图

    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      searchEditText = (EditText) findViewById(R.id.search_edit_text);
      searchEditText.requestFocus();
    });

requestFocus(xml)

在我的xml布局文件中,我试图

    <EditText 
      android:id="@+id/search_edit_text"
      android:hint="@string/search"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:inputType="text"
      android:imeOptions="actionSend"
      android:singleLine="true">
      <requestFocus />
    </EditText>

清单

在清单xml中我试过

android:windowSoftInputMode="stateAlwaysVisible"

android:windowSoftInputMode="stateVisible"

InputMethodManager

在我尝试过的活动中

    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      searchEditText = (EditText) findViewById(R.id.search_edit_text);
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
      imm.showSoftInput(searchEditText, InputMethodManager.SHOW_IMPLICIT);
    });

可运行

在我的活动中

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
    searchEditText = (EditText) findViewById(R.id.search_edit_text);

    searchEditText.requestFocus();
    searchEditText.postDelayed(new Runnable() {
        @Override
        public void run() {
            InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            keyboard.showSoftInput(searchEditText, 0);
        }
    },200);;
});

正如我在乞讨中所说的那样,我确信它可行,因为它适用于Google搜索。

1 个答案:

答案 0 :(得分:1)

你试过玩过清单吗?

尝试以下代码希望它有所帮助

<activity android:windowSoftInputMode="adjustPan">

了解有关此Read here

的更多信息