相关疑难解决方法(0)

Android如何关注ActionBar searchView

您好我需要在searchView中放置一些文本并关注/展开searchView小部件.

这是我尝试但它不起作用

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
...
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setQuery(this.filtro, false);
    searchView.setFocusable(true);
    searchView.requestFocus();
    searchView.requestFocusFromTouch();
Run Code Online (Sandbox Code Playgroud)

android android-widget

52
推荐指数
1
解决办法
4万
查看次数

从另一个活动返回时,SearchView获得焦点并打开键盘

当我从另一个活动返回到主活动时,searchView获得焦点并且键盘打开,我设法通过使用以下方式阻止键盘打开:

    getWindow().setSoftInputMode(
              WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

但这还不够,如果打开并关闭操作栏下拉菜单,键盘会重新出现,因为searchView仍然具有焦点(记住我只关闭了键盘).我试图获得对searchView的引用并使其失去焦点,但这并没有奏效.

所以基本上,我只是希望searchView永远不会有焦点或提示键盘打开,除非实际触摸了searchView文本区域.

keyboard android searchview

12
推荐指数
2
解决办法
6158
查看次数

在ActionBar上显示SearchView的软键盘

我们在ActionBar上有一个SearchView,它被设置为非图标化.由于我们在视图中没有任何内容直到用户输入要搜索的内容,因此将SearchView初始焦点放在一边是有意义的,并确保软键盘显示为用户输入文本做好准备 - 否则他们'我总是必须先在SearchView中点击.

我可以通过调用来给予SearchView焦点

searchView.requestFocus();
Run Code Online (Sandbox Code Playgroud)

但我不能让软键盘出现.在我们的另一个片段中,我有一个我们想要聚焦的EditText我可以通过调用让软键盘出现在那里

InputMethodManager mgr = (InputMethodManager)getActivity().getSystemService(
            Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
Run Code Online (Sandbox Code Playgroud)

但这只是在SearchView上不起作用.必须有可能让它发挥作用.

android actionbarsherlock

11
推荐指数
3
解决办法
1万
查看次数

使用SearchView在搜索操作栏激活时显示软键盘

当我从ActionBar激活搜索时,我看到这个问题集中在SearchView EditText上.但是,当它获得焦点时键盘不会出现.不应该,因为它只是一个普通的EditText?(这是一个普通的EditText吗?)这种行为在Android SDK 11级上可见.(三星Galax Tab 7.7与Android股票.)

我现在有一个解决方法,它挂钩onOptionsItemSelected(MenuItem item)我的Activity 的方法,显示键盘.

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        boolean menuSelectionHandeled = super.onOptionsItemSelected(item);
        // menu_search is the id of the menu item in the ActionBar
        if (item.getItemId() == R.id.menu_search) {
               mInputManager.showSoftInput(null, InputMethodManager.SHOW_IMPLICIT);
        }
        return menuSelectionHandeled;
    }
Run Code Online (Sandbox Code Playgroud)

在哪里mInputManager的实例InputMethodManager.

ActionBar是用ActionBarSherlock构建的,因为目标设备是Android 3.x,这可能是症状的原因吗?根据ActionBarSherlock的常见问题解答:

Android 3.x(也称为Honeycomb)上的操作栏未实现Android 4.x(Ice Cream Sandwich)中的所有功能.为了在所有平台上提供完整的操作栏API以及统一所有Android版本的样式,使用自定义实现.

android actionbarsherlock searchview

8
推荐指数
1
解决办法
2890
查看次数