2
添加使用ActionBarCompat一對的ActionView ActionBar的
我已經更新holoeverywhere版本在我的項目,所以我不使用MenuItemCompat.getActionView時再使用ActionBarSherlock(ABS),但ActionBarCompact(ABC)無法從Holoeverywhere
我的問題(aMenuItem)我總是得到一個空值。
確切的代碼我已經是:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.dashboard_menu, menu);
_itemNotifications = menu.findItem(R.id.notifications);
_containerViewItemNotifications = (LinearLayout) MenuItemCompat.getActionView(_itemNotifications);
_viewItemNotifications = (TextView) _containerViewItemNotifications.findViewById(R.id.ActionViewDashboard);
_containerViewItemNotifications.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
public void onClick(View v) {
if (android.os.Build.VERSION.SDK_INT >= 16) {
_viewItemNotifications.setBackground(getResources().getDrawable(R.drawable.qnotificacion_disbled));
} else {
_viewItemNotifications.setBackgroundDrawable(getResources().getDrawable(R.drawable.qnotificacion_disbled));
}
_viewItemNotifications.setText(R.string.empty);
onOptionsItemSelected(_itemNotifications);
}
});
_itemAnotateResult = menu.findItem(R.id.menu_anotate_result);
return super.onCreateOptionsMenu(menu);
}
其中MenuItemCompat.getActionView(_itemNotifications)始終是一個空值
我的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/notifications"
android:actionLayout="@layout/actionview_dashboard"
android:title="@string/customize"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/menu_anotate_result"
android:title="@string/anotate"
android:visible="false"
app:showAsAction="ifRoom|withText"/>
</menu>
如何我能克服這個嗎?我試圖按照類似的方法來解釋Android的文檔上的SearchViewItem,但沒有成功
在此先感謝。
解決!你提出的解決方案是正確的。就像將android:actionLayout更改爲app:actionLayout一樣簡單。謝謝 – anuf
拯救了一天!此評論也有幫助! –