Я обновил holoeverywhere версии в моем проекте, так что я не больше использовать ActionBarSherlock (ABS), но ActionBarCompact (ABC)Не может Добавить ActionView в ActionBar, используя ActionBarCompat из Holoeverywhere
У меня есть проблема в при использовании MenuItemCompat.getActionView (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>
Как могу ли я преодолеть это? Я попытался придерживаться аналогичного подхода к тому, что объясняется для SearchViewItem в документации по Android, но не имеет успеха вообще
Заранее спасибо.
Решенный! Решение, которое вы предлагаете, является правильным. Так же просто, как изменить андроид: actionLayout для приложения: actionLayout. Спасибо – anuf
Сохранено в день! Этот комментарий был также полезен! –