SearchView没有获得焦点

时间:2015-02-22 01:52:39

标签: android searchview

编辑对于任何想知道的人,我的问题是我使用的是android.widget.SearchView而不是android.support.v7.widget.SearchView。我希望这可以帮助其他人解决同样的问题!

原帖

我尝试按照官方指南在Android ActionBar中实施SearchView:http://developer.android.com/training/search/setup.html

在找不到问题后,我终于剥离了最基本的Hello World应用程序,并惊讶地发现该bug仍然存在于最小的应用程序中!

这是错误: 搜索图标出现在菜单栏中,没问题。当我单击它时,搜索栏会扩展(按预期方式),但没有光标,也没有软键盘出现。 (我想张贴一张照片,但我的名声太低了:(

这是相关的代码,虽然我只是创建了一个新的Android应用程序并将该项添加到menu / menu_main.xml。 MainActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

menu_main.xml

<item android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@android:string/search_go"
    app:showAsAction="collapseActionView|ifRoom"
    app:actionViewClass="android.widget.SearchView" />

1 个答案:

答案 0 :(得分:2)

使用它是menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="your activity context here"><item
    android:id="@+id/mi_search"
    android:title="@string/search"
    android:orderInCategory="2"
    android:icon="@drawable/searchicon"
    app:showAsAction="collapseActionView|ifRoom"
    app:actionViewClass="android.support.v7.widget.SearchView" />

onCreateOptionsMenu(Menu menu)中的此代码:

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);

    MenuItem searchItem = menu.findItem(R.id.mi_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

    searchView.setOnQueryTextListener(this);

    return super.onCreateOptionsMenu(menu);
}
onOptionsItemSelected()中的

case R.id.mi_search:
    onSearchRequested();
    break;