Итак, я заставил это работать сейчас с небольшим фокусом. Здесь идет фрагмент кода
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menuItemCreateCart = menu.findItem(R.id.menuItemCreateCart);
if (menuItemCreateCart == null) {
menuItemCreateCart = menu.add(0, R.id.menuItemCreateCart, 0, R.string.Create);
}
TextView tv = new TextView(getActivity());
tv.setText(R.string.Create);
tv.setTextColor(getResources().getColor(R.color.green));
tv.setBackgroundColor(getResources().getColor(R.color.lightBlue));
tv.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
createCart();
}
}
);
menuItemCreateCart.setActionView(tv);
Основная проблема заключается в том, что onclicklistener должен быть настроен на вид, который вы задали как вид действия, а не пункт меню, чтобы он работал. Таким образом, вы можете делать все что угодно.
Также обратите внимание, что вы НЕ можете использовать getActionView для получения первоначально установленного представления с заголовком, потому что оно вернет ноль. Похоже, что это скорее альтернативный вид, чем фактический вид для пунктов меню по умолчанию.