在应用程序本身中搜索数据

时间:2016-05-25 22:35:00

标签: android

我制作了一个Android音乐应用程序,一切正常。我没有在动作栏上搜索,而是决定制作搜索音乐的布局。我尝试过在线搜索各种教程,但都没有达到我希望它发生的方式,所以如果有人直接指导我如何实现在应用程序内搜索音乐本身,非常感谢

2 个答案:

答案 0 :(得分:0)

您需要使用搜索小部件,您可以将其放置在布局中的任何位置。 这是一个简单的教程:http://www.viralandroid.com/2016/04/simple-android-searchview-example.html

来自Android文档:https://developer.android.com/guide/topics/search/search-dialog.html

  

搜索小部件是SearchView的一个实例,您可以将其放置在布局中的任何位置。默认情况下,搜索窗口小部件的行为类似于标准的EditText窗口小部件,但不执行任何操作,但您可以对其进行配置,以便Android系统处理所有输入事件,将查询提供给相应的活动,并提供搜索建议(就像搜索一样)对话框)。

答案 1 :(得分:0)

首先在您的“活动”和SearchView中声明您的implements SearchView.OnQueryTextListener,然后使用onQueryTextChange方法处理您的搜索过程。

@Override
    public boolean onQueryTextChange(String query) {
        //get search query from searchView
        String mquery = query.toLowerCase();

        if(songArr.length() != 0 && songArr != null)
        {
            final JSONArray mArr= new JSONArray();
            for (int i = 0; i < songArr.length(); i++) {

                try {
                    String text = songArr.getJSONObject(i).getString("SongName").toLowerCase();
                    if (text.contains(mquery)) {

                        mArr.put(songArr.getJSONObject(i));
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }

            yourAdapter = new YourAdapter(YourActivity.this, mArr, this);

            recyclerView.setAdapter(yourAdapter);
            mScrollAdapter.notifyDataSetChanged();  // data set changed
            return true;
        }
        return false;
    }