javascript - 使用 SearchView 按按钮文本进行搜索

标签 javascript android android-studio android-button searchview

我在 content_main.xml 中实现了一些按钮

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 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"
        android:id="@+id/content_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:context="com.ivmenusisla.MainActivity"
        tools:showIn="@layout/app_bar_main">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:id="@+id/allRestaurants">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <Button
                    android:text="Blenders in the Grass"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:drawableLeft="@drawable/blenders"
                    android:alpha="0.90"
                    android:id="@+id/blenders" />

                <Button
                    android:text="Breakfast to Breakfast"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:drawableLeft="@drawable/btob"
                    android:alpha="0.90"
                    android:id="@+id/btob" />

            </LinearLayout>
        </ScrollView>

    </RelativeLayout>

我还在 main.xml 中添加了 SearchView 小部件

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

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/action_search"
            android:icon="@android:drawable/ic_menu_search"
            android:title="search"
            app:actionViewClass="android.support.v7.widget.SearchView"
            app:showAsAction="always" />
    </menu>

如何设置操作监听器,以便当用户单击 SearchView 小部件并键入内容时,根据每个按钮的文本显示结果?

我的 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.main, menu);

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

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

        @Override
        public boolean onQueryTextChange(String newText) {
            //Log.e("onQueryTextChange", "called");
            return false;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {


            // Do your task here

            return false;
        }

    });

    return true;
}

谢谢!

最佳答案

在 Activity 的“onCreate”函数中,您应该构造一个包含按钮文本的列表。

List<String> textContent = new ArrayList();

... onCreate (...) {
   ...
   Button button1 = (Button) findViewById(R.id.blenders);
   Button button2 = (Button) findViewById(R.id.btob);

   textContent.clear();
   textContent.add(button1.getText());
   textContent.add(button2.getText());

   ...
}


    @Override
    public boolean onQueryTextSubmit(String query) {
        // Do your task here

        for(String text : textContent) {
           if(text.contain(query)) {
                // do what you wanna do
           }
        }

        return false;
    }

关于javascript - 使用 SearchView 按按钮文本进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882769/

相关文章:

javascript - 我遇到一种情况,如果 url 不起作用,那么我不想运行我的测试用例

javascript - 如果方 block 的颜色刚刚更改,如何延迟更改网格中方 block 的背景颜色?

java - startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION) 上出现 NullPointException;

gradle - Gradle项目同步失败。 Android Studio

javascript - 使用服务,ngResource保存

javascript - 向单选按钮添加 onclick 功能

java - Android Java 库双向兼容

android - GoogleCloudMessaging Android 导入问题

android - 如何在android studio中生成签名的apk

android - 创建Android图标的 "Add Image Asset"在哪里?