相关疑难解决方法(0)

无法在actionbar中获取searchview

我是java和android开发的新手; 我一直在开发一个应用程序,我需要一个带有操作栏的操作栏SearchView.我看过谷歌的例子,但我无法让它工作.我一定做错了,我即将放弃应用程序开发:DI已经搜索但我没有找到任何有用的东西.也许你们可以帮助我:)

问题:我得到的搜索视图应该打开,但在此之后什么也没发生,我注意到我的searchManager.getSearchableInfo(getComponentName())返回null.另外,我给出的提示没有显示在我的搜索框中,这让我相信应用程序可能无法找到我的搜索文件?够了:)

MainActivity.java

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);

        // Get the SearchView and set the searchable configuration
        SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView =
            (SearchView) menu.findItem(R.id.menu_search).getActionView();
        searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

searchable.xml

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:hint="@string/search_hint"
    android:label="@string/app_label">
</searchable>
Run Code Online (Sandbox Code Playgroud)

Androidmanifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.searchapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar searchview

66
推荐指数
5
解决办法
3万
查看次数

Android - SearchView无法打开Activity

我正在尝试使用本教程来设置SearchView:https: //developer.android.com/training/search/setup.html

我创建了一个带有SearchView的菜单并配置了SearchView.但是,单击键盘上的"搜索"按钮或SearchView的提交按钮时,我的SearchResultActivity无法打开.

我还尝试按动作栏上的搜索小部件不会触发我的搜索活动,但我无法让SearchView打开第二个活动.有人可以帮忙吗?

这是我的菜单:

<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="com.sample.searchbarapplication.MainActivity">
    <item
        android:id="@+id/action_search"
        android:orderInCategory="100"
        android:title="@string/action_search"
        android:icon="@drawable/ic_search_white_24dp"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="collapseActionView|ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)

search-configuration xml:

<?xml version="1.0" encoding="utf-8"?>

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_name"
    android:hint="@string/search_hint" />
Run Code Online (Sandbox Code Playgroud)

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sample.searchbarapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="android.app.default_searchable"
            android:value=".MainActivity" />

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />

        </activity>

        <activity android:name=".SearchResultActivity"
            android:launchMode="singleTop">

            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>

        </activity>

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

MainActivity在其工具栏中包含SearchView:

public …
Run Code Online (Sandbox Code Playgroud)

android searchview

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

Android辅助搜索:搜索按钮不会调用可搜索的活动(其他解决方案没有帮助)

我编写了这个小测试应用程序来演示问题,即当用户按下键盘上的搜索按钮时,不会启动可搜索的活动.

我一直在关注开发者指南,但是从我的网络搜索来看,事实证明官方开发者指南错过了一些观点. 从我的SO搜索(没有帮助):

  • 参考1:通过在清单中的元素中添加标记来解决.我还查看了"用户词典"样本的清单(我不知道在哪里可以找到在线样本,或者我会链接到它).该标记位于application元素中.

  • 参考2: res/xml/searchable.xml中的"android:label"和"android:hint"必须是对字符串资源的引用,而不是硬编码字符串.我的是.

  • 参考3:在活动的清单中添加一个带有"android:name ="android.app.default_searchable""(以及"android:value ="<.searchable-activity-name>"")的标签.将要发起.试过这个,似乎没有用.

  • 参考文献4: "您的可搜索活动必须做某事 - 并实际显示结果." 我的确如此,它通过ACTION_SEARCH操作接收意图,并将从intent中检索到的搜索查询字符串传递给名为"performSearch(string)"的方法,该方法在textview中显示字符串.

那么我做错了什么,我该怎么做才能解决这个问题呢?

代码: MainActivity.java - 只有一个SearchView - 用户输入查询并按下键盘上的"搜索"按钮.

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
Run Code Online (Sandbox Code Playgroud)

TestTwoActivity.java

    public class TestTwoActivity extends Activity {
        TextView tv;
        private static final String TAG = TestTwoActivity.class.getSimpleName();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_test_two);

            /**
             * The following code enables assisted search on the SearchView by calling setSearchableInfo() …
Run Code Online (Sandbox Code Playgroud)

java search android android-searchmanager android-search

6
推荐指数
1
解决办法
1287
查看次数