我已經開始亂用碎片,因爲我在平板電腦上的應用可能會更有效地使用空間。FragmentActivity中的SearchView(支持)始終爲空
現在,在我的舊應用程序中,我在操作欄菜單中有一個SearchView,它會顯示在ifRoom上。我使用相同的代碼,但現在SearchView項目始終爲空。我不想根據活動片段或其他方式更改菜單項,我只需要使用SearchView在FragmentActivity中運行。
FragmentActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.svPet);
this.svPet = (SearchView)MenuItemCompat.getActionView(searchItem);
if(this.svPet != null)
{
this.svPet.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
this.svPet.setOnQueryTextListener(this);
}
return true;
}
的main.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/svPet"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom"
android:title="@string/search"
android:titleCondensed="@string/search">
</item>
...Some more items that are never shown as action and work correctly
</menu>
所以,當正在創建菜單,this.svPet保持爲空,則搜索查看未在欄中顯示(即使有足夠的空間),當我點擊菜單項時,我的應用程序崩潰,說有一個空指針
this.svPet.setIconified(false);
in
@Override
public boolean onOptionsItemSelected(MenuItem item)
關於什麼可能是錯誤的任何想法?我可能忽略了一些東西,但目前我看不出什麼問題。感謝提前:)
你有xml可搜索配置嗎? – pskink 2014-09-12 18:58:32
我不明白爲什麼我會需要它,因爲它以前一直沒有它,一直都很漂亮。使用FragmentActivity時它是強制性的嗎? – Tregan 2014-09-13 09:38:51
不,它不是強制性的,但我認爲一些破損的可搜索文件可能導致空SearchView,順便說一句「searchItem」有效? – pskink 2014-09-13 09:50:57