2014-10-20 74 views
2

我一直在将我的应用程序转换为新的材质设计标准,并且已经用actionbarcompat替换了动作栏sherlock。虽然我遇到了一个有关我的应用程序中的searchview小部件的奇怪问题。该应用程序崩溃,因为每当我尝试获取操作视图时,返回的小部件都是空的。这是经过大量调试后确定的。当我注释掉引起崩溃的代码时,即使在显式设置为始终显示之后,搜索也会显示为溢出项而不是操作项。SearchView不会在android棒棒糖中显示为动作视图

这是菜单XML

<item 
    android:id="@+id/search" 
    app:actionViewClass="android.widget.SearchView" 
    android:icon="@android:drawable/ic_menu_search" 
    app:showAsAction="always|collapseActionView" 
    android:showAsAction="always|collapseActionView" 
    android:title="@string/title" /> 

而且是继承人的代码膨胀的菜单,并试图获取行动项目的部分。被注释掉的行是抛出和错误的行,并且之后的所有行依赖于该对象是 。

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.homescreen, menu); 
    MenuItem item=menu.findItem(R.id.search); 
//SearchView sv = (SearchView) MenuItemCompat.getActionView(item); 
//SearchManager manager = (SearchManager)getActivity().getSystemService(Context.SEARCH_SERVICE); 
//sv.setSearchableInfo(manager.getSearchableInfo(newComponentName(getActivity().getApplicationContext(), SearchActivity.class))); 
     sv.setOnQueryTextListener(this); 
     sv.setIconifiedByDefault(false); 

} 

感谢您的帮助!

回答

1

变化:

app:actionViewClass="android.widget.SearchView" 

app:actionViewClass="android.support.v7.widget.SearchView" 
+1

对不起,这仍然没有解决这个问题。 – andrew749 2014-10-20 22:28:54

+0

remove'android:showAsAction =“always | collapseActionView”'并告诉我logcat – mmlooloo 2014-10-21 02:34:03

0

好了,所以与应用程序的问题结束了,其中非程序兼容性库是进口的不匹配进口。我通过切换一切到相同的包来解决这个问题。所以使用了v7支持库。