如何使用Volley库在android recyclerView中添加搜索功能

时间:2018-08-03 10:11:50

标签: android android-studio android-recyclerview android-volley searchview

我正在制作要在RecyclerView Items中进行搜索的android应用程序。请求将成功发送到服务器。基本上我正在用关键字搜索。问题是我如何将搜索关键字发送到服务器并根据该关键字加载数据。 这是我的搜索活动:

2 个答案:

答案 0 :(得分:0)

在onTextChanged()中调用getData()方法,并从搜索栏中获取字符串

  

searchItem = s.toString();

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int 
        count) {
        Log.d("onTextChanged", getClass().getSimpleName() + " text 
        changed " + searchBar.getText());
        searchItem = s.toString();
        Log.d("Text",searchItem);
        getData();
    }

答案 1 :(得分:0)

结合使用TextWatcher和TimerTask来避免不必要的api触发

在您的startTask()中致电onTextChanged()

    private Timer timer;
    private TimerTask timerTask;

    private void startTask() {
            cancelTimers();
            timer = new Timer();
            timerTask = new TimerTask() {
                @Override
                public void run() {
                    initSearch();
                }
            };
            timer.schedule(timerTask, 500);
        }

private void initSearch() {
    if (searchView != null && searchView.getQuery() != null) {
        String query = editText.getText().toString();
        setupAdapter(query);
    } else {
        setupAdapter(null);
    }
}



 private void setupAdapter(String query) {
        if (query != null) {
            // start Api call
        } else {
            //clearResults();
        }
    }



 private void cancelTimers() {
        if (timer != null) {
            timer.cancel();
            timer.purge();
        }
        if (timerTask != null) {
            timerTask.cancel();
        }
    }