2017-04-16 61 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