Android SearchView小部件不在操作栏

时间:2015-07-20 00:22:04

标签: android android-layout searchview

我想在我的布局中添加一个searchView并将其放在我想要的位置,不幸的是,我所能找到的只是将其添加到操作栏。我尝试将searchView小部件拖动到活动的布局中,但不确定从那里开始(它在设计上弹出了大量的空指针异常)。

我已遵循本指南:http://developer.android.com/guide/topics/search/search-dialog.html 并在操作栏中成功创建了一个searchView,这对于SearchableActivity非常有用。现在我想进入我的另一个活动,比如说MainActivity,并添加一个searchView小部件,我不想把它放到动作栏中。

我该怎么做?我已按照指南获得了我的SearchableActivity和配置。

1 个答案:

答案 0 :(得分:4)

您可以使用此搜索您的列表视图。在这里,我使用editte1xtSearch,您将添加要搜索的文本。

  editTextSearch.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2,
                                      int arg3) {

                String text = edSearch.getText().toString();
                NameListAdapter.filter(text);
            }
                @Override
                public void beforeTextChanged(CharSequence cs, int arg1, int arg2,
                                              int arg3) {
                }
                @Override
                public void afterTextChanged(Editable cs) {
                }
            });

添加以下过滤方法:

// Filter method for search
public void filter(String charText) {
    charText = charText.toLowerCase(Locale.getDefault());
    NameArrayList.clear();
    int j;
    if (charText.length() == 0) {
        NameArrayList.addAll(arrayList);
    }
    else
    {
        NameArrayList.clear();
        for (j=0;j<arrayList.size();j++)
        {

       if(arrayList.get(j).toLowerCase(Locale.getDefault()).contains(charText))
            {
                NameArrayList.add((arrayList.get(j)));
            }
        }
    }
    notifyDataSetChanged();
}