【问题标题】:How to implement a SearchView in Android如何在 Android 中实现 SearchView
【发布时间】:2016-11-05 08:38:51
【问题描述】:

我创建了一个基于RecyclerView 的SearchActivity,它应该搜索我在MainActivity 中声明的ArrayList<>

public class SearchActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        handleIntent(getIntent());
    }

    public void onNewIntent(Intent intent) {
        setIntent(intent);
        handleIntent(intent);
    }

    public void onListItemClick(ListView l, View v, int position, long id) {
        //DA IMPLEMENTARE: chiama accordo activity
        // do not care about this method, I'll implement it later
    }

    private void handleIntent(Intent intent) {
        if(Intent.ACTION_SEARCH.equals(intent.getAction())) {
            String query = intent.getStringExtra(SearchManager.QUERY);
            doSearch(query);
        }
    }

    private void doSearch(String queryStr) {
        // I think I should implement an adapter here
    }

}

我想我应该在doSearch() 方法中实现一些东西,但我不知道该怎么做。如果您能帮助我,我将不胜感激

【问题讨论】:

    标签: java android android-recyclerview


    【解决方案1】:

    您应该使用过滤器并在您的 RecyclerView 适配器上实现 Filterable。检查此link。如果您不想使用过滤器方法,请查看此tutorials

    【讨论】:

    • 感谢您的回答!我应该创建一个名为 SearchFilter 的新类,然后在 doSearch() 方法中实现它吗?
    • 不,在您的 doSearch 方法中使用 onQueryTextChange。检查这里的实现stackoverflow.com/questions/30398247/…
    • 这里有一个视频教程,可以更好地理解这个概念youtube.com/watch?v=XtEtsMoOLog
    • 谢谢!我试试看
    • 如果我有一个单独的搜索活动并且我仍然想搜索我的主要活动列表,我该如何使用这个tutorial?
    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 2019-01-11
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2016-05-20
    相关资源
    最近更新 更多