【问题标题】:Android: searchview to search specific strings variablesAndroid:searchview 搜索特定字符串变量
【发布时间】:2014-04-21 08:50:49
【问题描述】:

我正在开发一个 android 应用程序,我在其中使用 SearchView 小部件在自定义 ListView 用户数据(图像 + 名称和几个文本字段)中搜索。问题是当我输入查询时,它只搜索名称。有没有办法告诉SearchView 小部件搜索ListView 单元格中的其他字符串?

提前谢谢你。

下面的代码是我目前在动作栏中搜索的活动:

public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.redirect_user, menu);
        MenuItem menuitem = menu.findItem(R.id.action_search);
        searchItem = (SearchView) menuitem.getActionView();

        int id = searchItem.getContext().getResources()
                .getIdentifier("android:id/search_src_text", null, null);
        TextView textView = (TextView) searchItem.findViewById(id);
        textView.setTextColor(Color.WHITE);
        searchItem.setBackgroundColor(color.white);

        searchItem.setOnQueryTextListener(new OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                FiltreActivity.getAdapter().getFilter().filter(newText);

                return false;
            }
        });

【问题讨论】:

    标签: android android-listview searchview


    【解决方案1】:

    试试这个

    import android.app.Activity;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.Window;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.SearchView;
    
    /**
     * Shows a list that can be filtered in-place with a SearchView in non-iconified <span id="IL_AD1" class="IL_AD">mode</span>.
     */
    public class SearchViewFilterMode extends Activity implements SearchView.OnQueryTextListener {
    
        SearchView mSearchView;
        private ListView mListView;
    
        private final String[] mStrings = Cheeses.sCheeseStrings;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    
            setContentView(R.layout.searchview_filter);
    
            mSearchView = (SearchView) findViewById(R.id.search_view);
            mListView = (ListView) findViewById(R.id.list_view);
            mListView.setAdapter(new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1,
                    mStrings));
            mListView.setTextFilterEnabled(true);
            setupSearchView();
        }
    
        private void setupSearchView() {
            mSearchView.setIconifiedByDefault(false);
            mSearchView.setOnQueryTextListener(this);
            mSearchView.setSubmitButtonEnabled(true); 
            mSearchView.setQueryHint("Search Here");
        }
    
        public boolean onQueryTextChange(String newText) {
            if (TextUtils.isEmpty(newText)) {
                mListView.clearTextFilter();
            } else {
                mListView.setFilterText(newText.toString());
            }
            return true;
        }
    
        public boolean onQueryTextSubmit(String query) {
            return false;
        }
    }
    

    【讨论】:

    • 你的想法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2014-10-29
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多