0

我是 Java 和 Android 开发的初学者。

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

我正在尝试做同样的事情。我搜索了很多,我发现有很多不同的方法可以获得这个,问题是它们似乎都不起作用

请求焦点()

在我的活动中,我试图

    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      searchEditText = (EditText) findViewById(R.id.search_edit_text);
      searchEditText.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"

输入法管理器

在我尝试的活动中

    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 搜索上工作。

4

1 回答 1

1

您是否尝试过为此使用清单?

试试下面的代码希望它有帮助

<activity android:windowSoftInputMode="adjustPan">

有关此的更多信息,请阅读此处

于 2013-07-29T14:25:53.607 回答