2017-04-16 64 views
0

我需要帮助才能在操作栏上实现我的搜索功能。 IThis教程展示了如何使用简单的列表项来做列表视图,而我的代码,我使用了自定义的Adapter类。在列表视图的操作栏上搜索功能

+0

至极一个是线78? – jorgeavilae

+0

searchView.setOnQueryTextListener(新SearchView.OnQueryTextListener(){ – Let

回答

0

看起来你的搜索查看为空。取而代之的是:

inflater.inflate(R.menu.menu, menu); 
MenuItem searchItem = menu.findItem(R.id.item_search); 
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 

使用此:

inflater.inflate(R.menu.menu, menu); 
MenuItem searchItem = menu.findItem(R.id.item_search); 
SearchView searchView = (SearchView) searchItem.getActionView(); 

看一看到documentation

编辑

我复制你的代码,我测试。我发现一个错误。我不知道是否是另一个错误,或者是您所遇到的错误。

当您声明ListView变量时,您将设置为全局范围,但是当您给它一个值(R.id.listView值)时,您将声明另一个具有方法范围的ListView变量。

不要这样做ListView listView = (ListView) findViewById(R.id.listView);

做这个listView = (ListView) findViewById(R.id.listView);

做出这样的转变,这条线:listView.setAdapter(customAdapter);不会给你的NullPointerException。

我希望能修复你的代码。在其他情况下,您应该将您的logcat输出置于您的问题中以获取更多详细信息。并且在你将来的问题中也是如此)。

+0

我已经更改,但我的应用程序仍然停止。它仍然给我错误的行searchView.setOnQueryTextListener(新的SearchView.OnQueryTextListener(){ – Let

+0

如何看起来你的menu.xml文件? – jorgeavilae

+0

您好jorge。我已经尝试。当我更改自定义适配器,以适配器它的错误 – Let

2

,而不是在getVeiw方法验证码:

view = getLayoutInflater().inflate(R.layout.list_black_text, null); 

使用这一个

if (view == null) { 
     LayoutInflater inflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     view= inflater.inflate(R.layout.list_black_text, null); 
    } 

也许这对你的工作

+0

context.getSystemService和convertView给我错误 – Let

+0

,因为你是在mainActivity你不需要背景 看到它,我再次更新 –

+0

我固定它为你 锁在 –

0

这行代码会为您提供空指针异常,因为它不存在于当前布局中的 。检查你的XML文件的人!

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){ 

并通过您的代码看起来存在丢失;搜索视图 声明之后

搜索查看搜索查看=(搜索查看)

+0

它不会丢失,那句话继续在下一行。 – jorgeavilae