Android 行动栏中的SearchView

Android 行动栏中的SearchView,android,android-listview,searchview,Android,Android Listview,Searchview,我有一个ArrayList,其中包含从SQLite数据库获取的数据。该ArrayList是通过ArrayAdapter添加到ListView的。它可以工作。问题是当我使用SearchView筛选列表时。它不起作用。 这是我的代码: public class ListActivity extends Activity implements ActionBar.OnNavigationListener { List<InforTask> list =new ArrayList<

我有一个ArrayList,其中包含从SQLite数据库获取的数据。该ArrayList是通过ArrayAdapter添加到ListView的。它可以工作。问题是当我使用SearchView筛选列表时。它不起作用。 这是我的代码:

public class ListActivity extends Activity implements ActionBar.OnNavigationListener {


List<InforTask> list =new ArrayList<InforTask>();
ListAdapter adapter;
ListView lv;
Menu mnOption = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);

    list = dbHelp.getAllInfor();
    adapter = new ListAdapter(ListActivity.this,R.layout.view_list_item,list);
    lv = (ListView) findViewById(R.id.contact_list);
    lv.setAdapter(adapter);

}   


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.list, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    mnOption = menu;
    mSearchView = (SearchView) searchItem.getActionView();
    mSearchView
            .setOnQueryTextListener(new SearchView.OnQueryTextListener() {

                @Override
                public boolean onQueryTextSubmit(String query) {
                    // TODO Auto-generated method stub
                    return false;
                }

                @Override
                public boolean onQueryTextChange(String newText) {
                    adapter.getFilter().filter(newText.toString());

                    return false;
                }
            });


    return true;
}
公共类ListActivity扩展活动实现ActionBar.OnNavigationListener{
列表=新的ArrayList();
列表适配器;
ListView lv;
菜单选项=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_列表);
list=dbHelp.getAllin();
adapter=新的ListAdapter(ListActivity.this,R.layout.view\u list\u item,list);
lv=(ListView)findViewById(R.id.contact_list);
低压设置适配器(适配器);
}   
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.list,menu);
MenuItem searchItem=menu.findItem(R.id.action\u search);
mnOption=菜单;
mSearchView=(SearchView)searchItem.getActionView();
mSearchView
.setOnQueryTextListener(新的SearchView.OnQueryTextListener(){
@凌驾
公共布尔值onQueryTextSubmit(字符串查询){
//TODO自动生成的方法存根
返回false;
}
@凌驾
公共布尔onQueryTextChange(字符串newText){
adapter.getFilter().filter(newText.toString());
返回false;
}
});
返回true;
}
} //



“它不工作”不足以继续。请参阅。可能是adapter.notifyDataSetChange()?tks all。我修改了我的代码,并能够使其工作。我在这里找到它:
<item
    android:id="@+id/action_search"
    android:actionViewClass="android.widget.SearchView"
    android:showAsAction="always"
    android:title="Search..."/>