我正试图从支持库实现SearchView 。 我希望用户能够使用SearchView来筛选RecyclerView的电影List 。 到目前为止,我已经遵循了几个教程,并且已经将SearchView添加到ActionBar ,但是我不确定从哪里开始。 我已经看到了一些例子,但是当你开始input时,没有一个显示结果。 这是我的MainActivity : public class MainActivity extends ActionBarActivity { RecyclerView mRecyclerView; RecyclerView.LayoutManager mLayoutManager; RecyclerView.Adapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycler_view); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter = new CardAdapter() { @Override public Filter getFilter() { return null; } }; mRecyclerView.setAdapter(mAdapter); } […]
问题描述: 我面临着一些AutoCompleteTextView的问题,我必须在每次按键后显示build议。 事情是,build议列表像谷歌的build议function一样dynamic。 这意味着应该在用户一直input的时候添加新的build议,并且显示所有匹配的旧build议。 例如 我写“te”,然后显示以前的build议,如“test1”和“test2”,以及我将从Web API获得的新build议。 假设web API给我词“茶”和“紧张”。 现在AutoCompleteTextView将具有“te”作为string,下面显示了所有四个build议。 这正是我正在寻找的。 看起来很简单,但显示出一种奇怪的行为。 我正在使用默认的ArrayAdapter类的实例,我声明全球。 arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,suggestions); word.setAdapter(arrayAdapter); build议是ArrayList。 从WebApi获得新的结果,我只是打电话 arrayAdapter.notifyDataSetChanged(); 刷新数据观察者和视图(在我们的例子中是AutoCompleteListView)。 但它closures了build议。 当我不使用notifyDataSetChanged(); 它显示了所有build议,不pipe我input的字符。 我试图用自定义filter的build议,但没有一个是有用的,因为我不能使用notifyDataSetChanged()。 我张贴图像,以避免混淆。 我有一个困惑,为什么notifyDataSetChanged(); 它不工作。 我没有使用相同的arrayAdapter实例列表的任何其他引用。 我真的怀疑这是否是一个参考问题。